Rsync 文件同步速记:常用参数、增量备份与远程传输

举报
yd_241044277 发表于 2026/11/03 08:55:43 2026/11/03
【摘要】 把一台机器上的目录同步到另一台,很多人第一反应是打包再传,既慢又占空间。rsync 的思路不同:它只传变化的部分,第一次全量、之后增量,是做备份和发布最顺手的工具之一。本文把常用参数和典型场景整理成速记。 最基本的写法rsync -av 源目录/ 目标目录/注意源目录结尾的斜杠:带斜杠表示同步目录里面的内容,不带斜杠表示把目录本身也拷过去。这一个字符的差别是新手最常见的翻车点,写完先用 --...

把一台机器上的目录同步到另一台,很多人第一反应是打包再传,既慢又占空间。rsync 的思路不同:它只传变化的部分,第一次全量、之后增量,是做备份和发布最顺手的工具之一。本文把常用参数和典型场景整理成速记。

最基本的写法

rsync -av 源目录/ 目标目录/

注意源目录结尾的斜杠:带斜杠表示同步目录里面的内容,不带斜杠表示把目录本身也拷过去。这一个字符的差别是新手最常见的翻车点,写完先用 --dry-run 空跑一遍确认范围:

rsync -av --dry-run 源目录/ 目标目录/

常用参数速查

  • -a:归档模式,递归并保留权限、时间、软链接等属性,日常默认带上
  • -v:显示同步过程,想看具体文件再加一个 v
  • -z:传输时压缩,跨网络同步文本类文件时明显省流量
  • -P:断点续传并显示进度,传大文件必备,等价于 --partial --progress
  • --delete:让目标与源严格一致,源里删掉的文件目标也删除;做镜像备份才用,普通同步慎用,误删不回来
  • --exclude:排除不需要同步的内容,比如 --exclude='*.log'

远程同步

通过 SSH 传输时加 -e 指定通道,或者直接写成 user@host 形式,rsync 会默认走 SSH:

rsync -avz -P 本地目录/ user@192.168.1.10:/data/backup/

反过来把远程拉到本地,交换源和目标的位置即可。密钥免密登录配好之后,rsync 就能直接写进定时任务里无人值守地跑,这也是它和 cron 搭配最常见的用法:每天凌晨增量备份一次,日志重定向留痕。

增量为什么快

rsync 会先比较两端的文件列表,再用滚动校验算法找出文件内部真正变化的数据块,只传差异部分。日志、数据库导出这类每天只改一小部分的大文件,增量传输往往只要几秒。第一次同步没有便宜可占,老老实实全量传完,后面才吃得到增量的红利。

小结

记住三件事就够了:源路径的斜杠决定同步范围,先 --dry-run 再真跑,–delete 只在做镜像时开。把这三点做成习惯,rsync 基本不会给你惹麻烦。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。