一、基本语法
rsync [选项] 源路径 目标路径
路径既可以是本地目录,也可以是 user@host:路径(通过 SSH)或 rsync://host/模块(守护进程模式)。
二、常用参数速查表
| 参数 | 含义 |
|---|---|
| -a / –archive | 归档模式,等价于 -rlptgoD,保留绝大多数属性,最常用 |
| -v / –verbose | 显示详细过程 |
| -z / –compress | 传输时压缩,省带宽 |
| -P | 等价于 –partial –progress,显示进度并保留断点 |
| -r | 递归目录 |
| -l / -p / -t | 保留符号链接 / 权限 / 修改时间 |
| -H | 保留硬链接 |
| -A / -X | 保留 ACL / 扩展属性 |
| -e ssh | 指定通过 SSH 传输(默认即 SSH) |
| –delete | 删除目标端多余文件,实现完全镜像 |
| –exclude=模式 | 排除匹配的文件/目录 |
| –bwlimit=KBPS | 限速(KB/s) |
| -n / –dry-run | 干跑,只预览不执行 |
| -u / –update | 跳过目标端更新的文件 |
三、本地目录同步
# 把 /data/src 同步到 /data/dst(含子目录与属性)
rsync -av /data/src/ /data/dst/
注意结尾斜杠:/data/src/ 表示同步目录内的内容,/data/src 表示同步目录本身。两者结果不同。
四、通过 SSH 远程同步
# 推:把本地目录推到远程
rsync -avz -e ssh /data/ user@192.0.2.10:/backup/data/
# 拉:把远程目录拉到本地
rsync -avz -e ssh user@192.0.2.10:/var/log/ /local/log/
五、干跑预览(强烈建议每次先跑)
rsync -avzn -e ssh /data/ user@backup:/backup/
加上 -n 后不会真正传输,只列出将发生的变化,确认无误再去掉 -n 执行。
六、排除与限速
rsync -avz --exclude='node_modules/' --exclude='*.log' \
--bwlimit=2048 /data/ user@backup:/backup/
七、删除多余文件,保持镜像
rsync -avz --delete /data/ user@backup:/backup/
警告:--delete 会删掉目标端比源端多出来的文件。务必先用 -n 预览,且在可信的单向备份场景下使用。
八、显示进度
rsync -avP -e ssh /data/ user@backup:/backup/
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容