复制文件时Rsync显示进度栏
时间:2020-01-09 10:43:41 来源:igfitidea点击:
我正在使用rsync上传和下载大文件。
有没有办法显示文件进度条?
在Linux或者Unix等操作系统上本地或者远程使用rsync复制文件时,如何显示进度?
rsync是免费的开源工具。
复制本地或者远程文件很有用。
通过仅发送源文件和目标中现有文件之间的差异,它减少了通过网络发送的数据量。
将文件从serverA复制到serverB时,可以使用以下任一选项添加总进度指示器,反之亦然。
- rsync命令与--progress选项一起使用。
- pv命令监视通过管道的数据或者数据传输的进度。这是大多数用户的推荐选项。
rsync命令显示进度条
您需要使用--progress或者-P选项来显示文件传输过程中的进度。
语法如下:
rsync --progress source dest rsync -P source dest rsync [options] --progress source dest rsync -av --progress /path/to/*.mp3 /nfs rsync -av --progress /path/to/*.avi -e [email protected]:/data ############################################################### ## The following only works with the latest version of rsync ## ############################################################### rsync -av --info=progress2 source dest rsync -av --info=progress2 /path/to/*.avi -e [email protected]:/data ## See the pv command below for more info & syntax ##
例子
要将文件从/foo/*.tar.gz复制到名为server1.theitroad.local的远程服务器,请执行:
rsync -av -P /foo/*.tar.gz [email protected]:~
或者
rsync -av --progress /foo/*.tar.gz [email protected]:~
在此示例中,从远程服务器复制文件:
rsync -av --progress root@nas01:/tmp/*Office* .
输出示例:
receiving file list ... 2 files to consider MacOffice2011wSP2_English.dmg 1036923510 100% 14.72MB/s 0:01:07 (xfer#1, to-check=1/2) Office Mac Home and Student 2011 - 1PC-1User Keys.html 2230 100% 23.67kB/s 0:00:00 (xfer#2, to-check=0/2) sent 64 bytes received 1037052576 bytes 15363742.81 bytes/sec total size is 1036925740 speedup is 1.00
--info = progress2选项显示基于整个传输的统计信息,而不是单个文件的统计信息。
在不输出文件名的情况下使用此标志(例如,避免-v或者指定info = name0,如果要在不滚动具有很多名称的屏幕的情况下查看传输的情况。
rsync -av --info=progress2 root@nas01:/tmp/*Office* .
输出示例:
sending incremental file list MacOffice2011wSP2_English.dmg 1,036,923,510 99% 39.90MB/s 0:00:24 (xfr#1, to-chk=0/2) sent 1,037,176,846 bytes received 35 bytes 40,673,603.18 bytes/sec total size is 1,036,925,740 speedup is 1.00
在此示例中,从本地计算机复制到远程服务器:
$ rsync -v --progress debian-9-openstack-amd64.qcow2 Hyman@centos7:~/virt/
使用pv命令监视rsync命令的进度
使用pv命令可以查看通过管道的数据进度。
它提供以下信息:
- 时间流逝
- 完成百分比(带有进度条)
- 当前吞吐率
- 传输的总数据
- 预计到达时间
语法为:
rsync options source dest | pv -lpes Number-Of-Files
因此,如果/tmp/software中有42个文件,并且要将它们复制到/nas10,请执行:
rsync -vrltD --stats --human-readable /tmp/software /nas10 | pv -lep -s 42
或者
rsync -vrltD --stats --human-readable /tmp/software /nas10 | pv -lep -s 42 >/dev/null