用 rsync 做服务器增量备份:一条命令守住重要数据
【摘要】 服务器最怕数据丢了才发现备份是空的。每天全量复制既占磁盘又占带宽,最后往往不了了之。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)