用 rsync 做增量备份:从第一次同步到定时任务

举报
yd_229851404 发表于 2026/11/07 06:16:05 2026/11/07
【摘要】 很多人第一次做备份,习惯是把整个文件夹打包压缩,再拷贝到另一块硬盘。文件少时没有问题,文件一多就变了味:改了一个小文件也要重新传一遍,时间一长就不想备份了。rsync 解决的正是这个问题:它只同步变化的部分,第一次全量,之后都是增量。 第一次同步:先把路跑通假设要把本地的 ~/notes 备份到 ~/backup/notes,最常用的一条命令是:rsync -av --progress ~/...

很多人第一次做备份,习惯是把整个文件夹打包压缩,再拷贝到另一块硬盘。文件少时没有问题,文件一多就变了味:改了一个小文件也要重新传一遍,时间一长就不想备份了。rsync 解决的正是这个问题:它只同步变化的部分,第一次全量,之后都是增量。

第一次同步:先把路跑通

假设要把本地的 ~/notes 备份到 ~/backup/notes,最常用的一条命令是:

rsync -av --progress ~/notes/ ~/backup/notes/

这里 -a 是归档模式,会保留权限、时间戳和目录结构;-v 输出过程;--progress 能看到进度。最容易踩坑的是结尾的斜杠:notes/ 表示同步目录里的内容,notes 则会把目录本身也复制一份,目标下多一层,恢复时容易找错。

第一次执行前,先加 --dry-run 演练一遍,只看会发生什么,不真正写文件。确认无误再去掉这个参数正式跑。养成这个习惯,能避开大多数误操作。

为什么第二次会快很多

rsync 会按文件大小和修改时间判断哪些文件变了,对变化的文件再按块校验,只传变化的块。一个大文件只改了少量内容,第二次同步可能只传很小一部分。这就是增量备份的核心:不重复传没有变的东西。

排除不需要的文件

备份目录里常有缓存、临时文件和构建产物,不必每次都带上。用 --exclude 把它们排除:

rsync -av --exclude='*.tmp' --exclude='node_modules/' ~/project/ ~/backup/project/

需要排除多项时,可以把规则写进一个文件,再用 --exclude-from=exclude.txt 引用,调试时同样先用 --dry-run 看结果。

小心 --delete:同步删除是把双刃剑

加上 --delete 后,源目录删掉的文件也会在目标里删掉,两边保持镜像。这很干净,但也很危险:源目录一旦误删,下一轮同步会把备份里的对应文件也删掉。所以第一次用它之前,先确认源目录没有误删,并保留一份不带 --delete 的完整副本,或者配合 --backup 把被删文件先移走,而不是直接删除。

远程备份与定时任务

rsync 天生支持远程传输,配合 SSH 免密登录即可:

rsync -avz -e ssh ~/notes/ user@192.168.1.10:~/backup/notes/

其中 -z 是传输时压缩,文本类文件效果明显,上面的地址只是示例,按自己的服务器地址填写。

手动备份最大的敌人是遗忘。把命令放进定时任务,每天凌晨自动跑一次。Linux 上可以用 systemd timer,也可以用 cron,选一种坚持用就行。以 cron 为例,每天 2 点执行:

0 2 * * * rsync -av ~/notes/ ~/backup/notes/ >> ~/backup.log 2>&1

把输出重定向到日志文件,出问题时先看日志。定时任务跑起来后,第一周每天检查一次日志,确认它真的在跑。

恢复演练与检查清单

备份做完不等于备份有效。每月至少做一次恢复演练:从备份目录里挑几个文件恢复到临时目录,打开确认内容完整。如果发现文件打不开或缺失,立刻修备份策略,而不是等到真正丢数据那天才发现。

上手检查清单:第一次同步前用 --dry-run 演练;确认结尾斜杠的含义;排除缓存和临时文件;谨慎使用 --delete,并保留一份不删除的副本;远程备份走 SSH 免密;定时任务加日志;每月做一次恢复演练。

备份不需要很复杂,关键是跑得起来、恢复得了。从今天起,把最重要的一个目录交给 rsync,让增量备份替你把“以后再说”变成“已经备份了”。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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