我试图通过指定--bwlimit选项来限制Rsync使用的带宽,但它似乎不起作用。我不知道我做错了什么......:
最大可能上传速度= 10mbit / sec。我想将rsync限制在50%左右:
Rsync命令=
[~] # rsync --version
rsync version 3.0.7 protocol version 30
[~] # rsync -a --verbose --partial --bwlimit=500 -e 'ssh -p 2200 -i /share/ssh/id_dsa' admin@10.0.3.10:/share/MD0_DATA/ /share/LocalData
结果=
=============================================== ===============================
解决方案如下:
[~] # ipkg install trickle
Installing trickle (1.06-3) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ts509/cross/unstable/trickle_1.06-3_i686.ipk
Installing libevent (2.0.16-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ts509/cross/unstable/libevent_2.0.16-1_i686.ipk
Configuring libevent
Configuring trickle
Successfully terminated.
[~] # trickle -d 500 rsync -a --verbose --partial -e 'ssh -p 2200 -i /share/ssh/id_dsa' admin@10.0.3.10:/share/MD0_DATA/ /share/LocalData
trickle: Could not reach trickled, working independently: No such file or directory
receiving incremental file list
答案 0 :(得分:20)
- bwlimit = KBytes / s应用移动平均线来限制产生的吞吐量, 所以你只会注意到它的传输量远大于你的可用带宽。
来自man页,
发送数据块,如果rsync确定传输速度太快,它将在发送下一个数据块之前等待。结果是平均传输速率等于指定的限制。)
看看trickle,它似乎采用了更精确的算法来理解这个概念。
答案 1 :(得分:0)
作为替代方案,我非常喜欢cstream
http://www.cons.org/cracauer/cstream.html。
cstream是一个通用的流处理工具,如UNIX dd,通常用于命令行构造的管道
有可能将它与rsync一起使用,没有经验。以下是如何将其与tar
一起使用的示例。
http://www.commandlinefu.com/commands/view/2543/throttle-bandwidth-with-cstream
<强> TL; DR 强>
tar -cj /backup | cstream -t 777k | ssh host 'tar -xj -C /backup'
答案 2 :(得分:0)
在scp
中使用limit选项(-l)似乎可以正常工作,它使用与rsync几乎相同的语法,并且可以用作替代方法。
scp -l 200 hugefile.tgz example.org:bigstuff/