rsync限速需用--bwlimit=数值(单位KB/s,仅整数),仅对网络传输生效,是软上限,配合-z、-P、--partial等选项更实用。

用 rsync 限速很简单,核心就是 --bwlimit 参数,单位是 KB/s。它能有效防止 rsync 吃光网络带宽,特别适合生产环境或共享网络的场景。
限速参数怎么写
直接在命令中加上 --bwlimit=数值 即可,比如:
-
rsync -avz --bwlimit=500 /data/ user@192.168.1.100:/backup/→ 限制为 500 KB/s(约 4 Mbps) -
rsync -avz --bwlimit=10000 /var/log/ root@server:/logs/→ 限制为 10 MB/s
注意:数值单位固定是 KB/s,不是 Mbps 或 MB/s;小数不支持,只接受整数。
限速生效的前提和细节
这个参数只对**网络传输阶段**起作用,本地同步(如 rsync /a /b)时无效。它控制的是 rsync 进程向 socket 写数据的速率,并非系统级带宽管控,所以不会影响其他进程。
- 限速值是“软上限”,实际瞬时速率可能略超,但长期平均会贴近设定值
- 配合 -z(压缩)使用效果更好,因为压缩后要传输的数据量变小,同样限速下完成更快
- 如果传输中断,重启命令时带上相同
--bwlimit,限速策略依然生效
和其他选项搭配的实用组合
日常运维中,建议把限速和几个关键选项一起用,兼顾安全、效率和可观测性:
-
rsync -avzP --bwlimit=2000 --partial /src/ user@host:/dst/
→-P显示进度+断点续传,--partial保留未传完的临时文件 -
rsync -a --bwlimit=1000 --delete /web/ user@prod:/var/www/
→ 镜像发布时限速 + 删除多余文件,避免误删可先加--dry-run测试
验证限速是否起作用
运行时观察输出中的传输速率(单位 KB/s),它会稳定在你设定值附近波动。也可以用 iftop 或 nethogs 实时查看该 rsync 进程的实时网速,确认没有明显超出设定上限。


















