1. rsync 命令概述:Linux 文件同步利器
第一次在服务器间同步日志文件时,我用了整整一晚上 scp 命令。直到发现 rsync 只传输差异部分的功能,才明白为什么运维老手都说这是 Linux 下最强大的同步工具。这个用 C 语言编写的开源工具,自 1996 年诞生以来就因其增量传输算法成为系统管理员的核心武器。
rsync 的核心价值在于智能同步——通过校验算法比较源和目标文件的差异,仅传输变化的部分。想象你要同步一个 10GB 的目录,如果只有 1MB 内容变动,传统 scp 会重新传输整个目录,而 rsync 只需传输那 1MB。这种差异传输机制(delta-transfer algorithm)让它在大文件同步场景下效率提升数百倍。
实际测试:同步 50GB 虚拟机镜像文件(修改了 3 个配置文件)
- scp 耗时:22 分钟
- rsync 首次同步:21 分钟
- rsync 二次同步:8 秒
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心参数深度解析
2.1 基础参数组合拳
-a 参数是新手最容易忽视的宝藏,这个归档模式(archive)实际上包含了:
-r递归目录-l保留符号链接-p保留权限-t保留修改时间-g保留属组-o保留属主-D保留设备文件
但要注意,-a 不包含 -H(硬链接处理),对于有硬链接的目录需要额外添加。我常用这个组合处理网站备份:
bash复制rsync -aH --delete /var/www/ user@backup:/backups/www/
2.2 传输优化三剑客
-
压缩传输
-z:
在带宽受限环境下特别有效,但要注意 CPU 开销。实测同步 10GB 文本日志:- 无压缩:传输量 10GB,耗时 15 分钟
- 启用压缩:传输量 3.2GB,耗时 9 分钟(CPU 占用 35%)
-
带宽限制
--bwlimit=1000:
单位是 KB/s,适合避免影响生产网络。我曾经因为没限速导致办公网络瘫痪,现在同步生产数据必加:bash复制
rsync -az --bwlimit=5000 /data/ use
