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 会删除目标端多余文件,请确认目标目录只用于该站点发布,且已备份重要内容。