【发布时间】:2011-11-01 17:54:30
【问题描述】:
我正在尝试编写一个 Python 脚本来监控 rsync 传输,并提供(粗略的)进度百分比估计。在我的第一次尝试中,我查看了一个 rsync --progress 命令,发现它会打印以下消息:
1614 100% 1.54MB/s 0:00:00 (xfer#5, to-check=4/10)
我为此类消息编写了一个解析器,并使用 to-check 部分生成一个百分比进度,在这里,这将完成 60%。
但是,这里有两个缺陷:
- 在大型传输中,待检查分数的“分子”似乎不会单调递减,因此完整性百分比可能会向后跳跃。
- 并非所有文件都打印这样的消息,这意味着进度可以向前跳转。
我已经查看了要使用的其他消息替代方案,但没有找到任何东西。有人有什么想法吗?
提前致谢!
【问题讨论】:
-
值跳跃是因为 rsync 在它仍在评估它必须做的工作时开始传输数据。这是一个很好的衡量标准。
-
有没有办法让它预先评估它需要做的工作? --dry-run --stats 似乎是这样的事情,不幸的是它为要传输的数据产生的值不正确。
-
为什么要放慢速度,让它显示无用的信息?
-
嗯,这不是无用的信息...我一次传输千兆字节,重要的是给用户一个有用的进度概念,而不打印消息左、右和中心?在需要半小时的传输上多花一分钟左右,以向用户显示大概需要多长时间,这对我来说似乎是一个合理的权衡。
-
没有“打印消息左、右和中心”,它只是在了解更多信息时更新进度信息。