如何使用 ‐‐bwlimit 选项设置 rsync 速度限制,以免占用所有带宽
rsync 是一个免费的开源命令行实用程序,用于在计算机和硬盘之间高效传输和同步文件。它还可以跨联网机器传输和同步文件。您可以使用--bwlimit选项轻松限制 I/O 带宽。在本教程中,您将学习如何在 Linux、MacOS、FreeBSD 和类 Unix 系统上使用 rsync 命令设置 I/O 限制。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux/类 Unix 操作系统上的 rsync |
预计阅读时间 | 3 分钟 |
在 Linux 和类 Unix 系统上设置 rsync 速度限制
- 打开 Linux、Unix 或 macOS 终端
- --bwlimit=RATE您可以通过在 rsync 命令中输入选项来指定通过套接字或网络发送的数据的最大传输速率
- 将 rsync 带宽限制设置为每秒 5000 KB:rsync --bwlimit=5000 source dest
如何防止 rsync 命令占用全部带宽
语法是:
rsync --bwlimit=KBPS src dst
rsync --bwlimit=KBPS [options] src dst
rsync --bwlimit=KBPS [options] src user@dst
rsync --bwlimit=KBPS [options] user@src /path/to/dir
rsync --bwlimit=KBPS -a -P /path/to/dir/ user@server1.example.com
示例
您将 I/O 限制设置为每秒 1000 KB:
在此示例中,以 5000KB/s 的速度从当前目录中的 FreeNAS 服务器提取文件:
$ rsync --bwlimit=1000 /path/to/source /path/to/dest/
$ rsync --bwlimit=1000 /var/www/html/ \
backups@server1.example.com:~/mysite.backups/
$ rsync --bwlimit=5000 --delete -P -az -H --numeric-ids \
vivek@192.168.2.30:linode-www .
了解选项
来自 rsync手册页:
该--bwlimit=KBPS选项允许您指定最大传输速率。RATE 值可以加上字符串后缀以指示大小乘数,并且可以是分数值(例如“-bwlimit=1.5m”)。如果未指定后缀,则假定该值以 1024 字节为单位。出于向后兼容的原因,速率限制将四舍五入到最接近的 KiB 单位,因此不可能出现小于每秒 1024 字节的速率。Rsync 以块为单位通过套接字写入数据,此选项既限制了 rsync 写入的块的大小,又尝试将平均传输速率保持在要求的限制上。当 rsync 写出数据块然后休眠以使平均速率达到要求时,可能会出现一些“突发性”。
向 ionice 问好
使用 ionice 命令设置或获取程序(例如 rsync 或您自己的备份脚本)的 I/O 调度类和优先级。因此,您可以在 Linux 上使用 ionice 实用程序控制 I/O 带宽,如下所示:
/usr/bin/ionice -c2 -n7 /root/scripts/nas.backup.full
或
其中:
/usr/bin/ionice -c2 -n7 rsync \
-bwlimit=1000 /path/to/source /path/to/dest/
- -c或--class{class}:调度类的名称或编号,0:无,1:实时,2:尽力而为,3:空闲。
- -n或--classdata {num}:指定调度类中的优先级(0..7),仅适用于实时和尽力而为类
如何通过 trickle 命令选项限制 rsync 速度
另一个选择是使用 trickle,它是一个用户空间带宽管理器。语法是:
例如,
有关更多信息,请参阅以下教程:
trickle -u uploadLimit program
trickle -d downloadLimit rsync
trickle -u {UPLOAD_LIMIT} -d {DOWNLOAD_LIMIT} program-binary
trickle -s -d 3000 -u 3000 rsync /path/to/source/ /dest/
trickle -s -d 3000 -u 3000 rsync -avr /var/www/html/ vivek@server1.example.com/var/www/html/
结论
您学习了如何使用各种技术设置 rsync 命令速度限制。主要优点是确保 rsync 不会耗尽网络连接。有关更多详细信息,请使用 man 命令,如下所示:
% man rsync