用 rsync 做服务器增量备份:一条命令守住重要数据

举报
yd_211833921 发表于 2026/10/31 04:31:50 2026/10/31
【摘要】 服务器最怕数据丢了才发现备份是空的。每天全量复制既占磁盘又占带宽,最后往往不了了之。rsync 的增量备份只传新增和变化的部分,第一次全量、之后增量,让每天备份真正能坚持下去。 增量为什么省rsync 默认按大小和修改时间判断变化,未变文件直接跳过;配合硬链接,每天的备份看起来都是完整目录,实际只占增量空间,恢复时也不用再拼增量包。 一条直接用的命令rsync -av --delete --...

服务器最怕数据丢了才发现备份是空的。每天全量复制既占磁盘又占带宽,最后往往不了了之。rsync 的增量备份只传新增和变化的部分,第一次全量、之后增量,让每天备份真正能坚持下去。

增量为什么省

rsync 默认按大小和修改时间判断变化,未变文件直接跳过;配合硬链接,每天的备份看起来都是完整目录,实际只占增量空间,恢复时也不用再拼增量包。

一条直接用的命令

rsync -av --delete --exclude='cache/' /data/ /backup/data/

-a 保留权限与时间戳,-v 显示过程。源路径末尾斜杠很关键:/data/ 是复制目录内容,/data 会多套一层。–delete 会同步删除目标端多余文件,正式执行前务必先演练:

rsync -av --dry-run --itemize-changes /data/ /backup/data/

逐项确认新增、修改、删除无误后再真正执行。

用硬链接做每日快照

只留一份目标目录有风险:源文件误删后,下次同步也会删掉备份。每天生成日期目录并以上一天目录为硬链接基准:

TODAY=$(date +%F)
rsync -av --link-dest=/backup/latest /data/ /backup/$TODAY/
ln -sfn /backup/$TODAY /backup/latest

未变文件只是硬链接,不额外占空间;保留七天快照,成本远低于七份全量。

远程与定时

备份与服务器同机只能防误删,防不了磁盘故障。放到另一台服务器并走 SSH:

rsync -avz -e ssh /data/ backup@192.168.1.10:/backup/data/

再用 cron 每天凌晨执行一次,把日志留好,第二天看一眼退出码即可。

备份不等于能恢复

每月至少演练一次:把备份拷到临时目录,打开关键文件,确认能正常读取,并抽查校验和。只备份、不验证的备份,出事那天才会被发现问题。

避开斜杠写错、排除规则误伤配置、直接在生产目录试 --delete、任务失败无人知晓这四个坑,一条 rsync 命令就能成为服务器最便宜可靠的保险。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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