我们知道,如果我们给 rsync 提供 --progress 参数,它将显示复制文件的进度。但问题是,它显示的是每个单个文件的进度,而不是总进度或整体进度。
那么如何查看文件复制的总进度。
答案1
要查看 的总体进度rsync
,现代版本(从 3.1.0 开始)有选项--info=progress2
。rsync
必须与源文件(或使用 NFS)在同一台计算机上运行,才能显示正常的值。-a
如果您复制系统目录,也不要忘记提供选项。
答案2
正如评论所说,问题是已经被问过这里。
所以...简短的回答:你不能。
编辑:您现在可以使用--info=progress2
选项来rsync
了解总体进度(如果您正在寻找替代进度指示器或了解更多信息,请阅读我原始答案的其余部分)。
我引用的是大卫·麦金托什:
添加总进度指示器的方法并不简单。
这样做的原因是,当 rsync 查看要同步的文件列表时,它不提前知道哪些文件需要更改。如果您正在进行增量传输,则必须提前计算增量本身,以全面了解需要完成的工作。
换句话说,计算需要完成多少工作的最简单方法就是实际执行。
但你可以有一个进度条传输的文件数使用pv
,如果您已经知道自己有多少,请引用零度:
rsync -aix /source remote:/dest | pv -les $(df -i /source | perl -ane 'print $F[2] if $F[5] =~ m:^/:') >/dev/null
答案3
同步是一个 rsync 包装器,显示带有进度的状态栏: