rmdir.cn

rsync over ssh

增量同步文件到远程主机

语法

rsync -avz --delete -e ssh 源目录 [用户名@]主机:目标目录

说明

适用于部署发布、日志归档等需要重复同步的场景。rsync 只传输有差异的部分,支持断点续传与删除多余文件。使用 -e ssh 指定通过 SSH 传输;--delete 会删除目标端多余文件,属于高风险参数,务必先加 --dry-run 预览。

参数

  • -a

    归档模式,保留权限、时间与符号链接

  • -v

    输出传输详情

  • -z

    传输时压缩,文本文件收益明显

  • --delete

    删除目标端多余文件

  • --dry-run

    仅预览将要执行的操作

示例

预览同步结果

正式执行前先确认会删改哪些文件。

rsync -avz --dry-run --delete -e ssh ./out/ deploy@example.com:/srv/www/site/

注意事项:源路径结尾的斜杠表示同步目录内容而不是目录本身,书写时要特别留意。

正式发布静态站点

确认预览结果无误后去掉 --dry-run。

rsync -avz --delete -e ssh ./out/ deploy@example.com:/srv/www/site/

注意事项:--delete 会删除目标端多余文件,请确认目标目录只用于该站点发布,且已备份重要内容。

参考资料