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/ [email protected]:/backup/projects/
# -z启用压缩,-e指定远程shell
3. 远程同步(拉模式)
# 远程→本地(保留权限和时间戳)
rsync -avt user@server:/var/log/ /local/logs/
4. 目录列表查看
# 查看远程目录内容(不实际传输)
rsync [email protected]:/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

五、注意事项

  1. 目录路径规范

    /Dir/    # 同步目录内容(不创建Dir目录)
    /Dir     # 同步整个Dir目录
  2. 权限问题处理

    • 远程同步需配置SSH密钥认证

    • 需要root权限时使用sudo rsync -a -o root

  3. 连接稳定性

    rsync -avP --partial /iso/ remote:/mirrors
    # --partial保留中断的部分文件
  4. 测试模式

    rsync -avn src/ dest/  # -n参数模拟运行

生产环境建议:结合-c校验和与-P进度显示,使用rsync -avcP组合在传输关键数据时同时保障可靠性和可观测性。NASA等科研机构常用rsync同步PB级科研数据。

你可能感兴趣的:(Linux,linux,运维,服务器,远程工作,rsync)