我经常rsync
在基于 OSX 的笔记本电脑上使用它来将一些文件同步到 Linux 服务器。笔记本电脑可以连接到带宽相差很大的不同网络(办公室以太网、wifi、3G 等)。该--bwlimit=Kbps
选项允许通过为 rsync 本身指定硬性(好吧,大致是硬性)限制来控制用户空间中使用的带宽。但是,它以 Kbps 表示,这使得它很难用于在不同网络(例如笔记本电脑连接的网络)上使用的自动化脚本。
有没有办法告诉 rsync 使用带宽百分比而不是以 K 表示的限制?或者,我可以轻松地动态计算此值或用脚本包装 rsync 来执行此操作吗?
我想要一个可以在 OS X 上运行的解决方案,或者在 Linux 上运行 - 理想情况下两者兼而有之。
笔记:我希望避免使用防火墙等硬件流量整形解决方案。限制的近似值或估计值都可以。
答案1
假设你有 Python,你可以修改速度测试-cli来改变其打印结果,或者将其作为模块导入到你自己的程序中,并使用其downloadSpeed()
函数的返回值。这样,你可以得到:
$ ./speedtest-cli --simple
Ping: 375.668 ms
Download: 66.36 Mbit/s
Upload: 41.05 Mbit/s