Linux远程数据同步——rsync命令详解
摘要:rsync是强大的远程数据同步工具,采用差异算法提升传输效率。本文详解参数用法,提供本地/远程同步示例,涵盖权限保留、进度显示等核心功能。
一、Rsync核心特性
rsync(Remote Sync)是高效的文件同步工具:
-
智能传输:通过差异算法只传输修改部分,减少带宽消耗
-
跨平台支持:本地/局域网/互联网多主机同步
-
完整性保障:支持校验和(-c)确保数据一致性
-
权限保留:完整保留文件属性、权限和时间戳
语法格式:
rsync [参数] 源目录 目标目录
二、参数分类详解
1. 同步模式参数
参数 | 说明 | 示例 |
---|---|---|
-a | 归档模式(等效-rlptgoD ) | rsync -a /src /backup |
-r | 递归同步子目录 | rsync -r ~/docs server:/backup |
-R | 使用相对路径 | rsync -R project/ server:/backup/ |
-x | 不跨越文件系统边界 | rsync -ax /mnt/disk1 /mnt/disk2 |
2. 文件属性保留
参数 | 说明 | 示例 |
---|---|---|
-p | 保留文件权限 | rsync -p configs server:/etc |
-t | 保留修改时间 | rsync -t photos/ cloud:/albums |
-o | 保留文件所有者 | rsync -o root: /etc server:/backup |
-g | 保留文件属组 | rsync -g www-data: /var/www backup |
3. 传输控制
参数 | 说明 | 示例 |
---|---|---|
-z | 传输时压缩 | rsync -z largefile remote:/data |
-P | 显示进度+断点续传 | rsync -P video.mp4 nas:/media |
-c | 基于校验和检测差异 | rsync -c db.sql backup:/dbs |
--bwlimit | 限速(1MB/s) | rsync --bwlimit=1000 src/ remote:/ |
三、实战操作示例
1. 本地目录同步
# 同步Dir1到Dir2(保留所有属性)
rsync -av /Dir1/ /Dir2/
# 注意:尾部斜杠/表示同步目录内容(无斜杠同步整个目录)
2. 远程同步(推模式)
# 本地→远程(使用SSH协议)
rsync -avz -e ssh ~/projects/ user@192.168.1.100:/backup/projects/
# -z启用压缩,-e指定远程shell
3. 远程同步(拉模式)
# 远程→本地(保留权限和时间戳)
rsync -avt user@server:/var/log/ /local/logs/
4. 目录列表查看
# 查看远程目录内容(不实际传输)
rsync user@192.168.10.10:/Dir/
# 输出格式:权限 大小 日期 文件名
5. 增量备份
# 创建带时间戳的增量备份
rsync -av --backup --backup-dir=`date +%Y%m%d` /data/ /backup/current
# 每日备份保存到独立目录
6. 排除特定文件
rsync -av --exclude='*.tmp' --exclude='cache/' /www/ backup:/www
四、高级应用场景
1. 实时同步(监控变化)
# 安装inotify-tools后
while inotifywait -r -e modify,create,delete /data; do
rsync -av /data/ backup-server:/backup
done
2. 带宽限制传输
# 白天限速500KB/s,夜间全速传输
rsync -av --bwlimit=500 /videos/ remote:/media
# 夜间可通过crontab取消限速
3. 安全删除源文件
# 同步后删除源文件(替代mv)
rsync -av --remove-source-files /incoming/processed/ /archive/
4. 部分文件更新
# 仅同步超过100MB的修改文件
rsync -av --min-size=100M /data/ backup:/largefiles
五、注意事项
-
目录路径规范:
/Dir/ # 同步目录内容(不创建Dir目录) /Dir # 同步整个Dir目录
-
权限问题处理:
-
远程同步需配置SSH密钥认证
-
需要root权限时使用
sudo rsync -a -o root
-
-
连接稳定性:
rsync -avP --partial /iso/ remote:/mirrors # --partial保留中断的部分文件
-
测试模式:
rsync -avn src/ dest/ # -n参数模拟运行
生产环境建议:结合
-c
校验和与-P
进度显示,使用rsync -avcP
组合在传输关键数据时同时保障可靠性和可观测性。NASA等科研机构常用rsync同步PB级科研数据。