21

我试图通过指定 --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
4

3 回答 3

22

--bwlimit=KBytes/s 应用移动平均值来限制产生的吞吐量,因此您只会注意到它对于比您的可用带宽大得多的传输。

手册页,

数据块被发送,然后如果 rsync 确定传输太快,它会在发送下一个数据块之前等待。结果是等于指定限制的平均传输速率。)

看看涓涓细流,它似乎采用了更精细的算法来体现这个概念。

于 2012-04-09T08:11:53.157 回答
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;博士

tar -cj /backup | cstream -t 777k | ssh host 'tar -xj -C /backup'
于 2015-01-08T14:59:49.910 回答
0

限制选项 (-l) 在 中似乎可以正常工作scp,它使用与 rsync 几乎相同的语法,并且可以用作替代方案。

scp -l 200 hugefile.tgz example.org:bigstuff/

示例取自:http ://betabug.ch/blogs/ch-athens/934

于 2018-06-27T17:27:03.277 回答