FreeBSD 下使用 rsync(四):rsync 常用命令与参数详解

一、基本语法

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
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容