用 Restic 做去重加密备份:一次配置,长期省心

自建服务 · 2 分钟阅读· 217 次阅读

传统的 rsync 同步是「当前状态」,误删会同步过去;Restic 是快照式,可以回到任意时间点。

它的去重按内容块做,同一份数据每天备份,实际增量可能只有几十兆。

先说结论

仓库放异地对象存储,密码单独保管,每月 check 一次、prune 一次。

  • 仓库密码丢了数据就打不开,必须单独存
  • 备份前排除缓存与临时文件
  • prune 要按策略(--keep-daily 7 --keep-weekly 4)
  • 定期 restic check --read-data-subset

先把问题说清楚

Restic 的仓库是「内容寻址」的:每个数据块按哈希存储,重复内容只存一份。这让每日备份的增量非常小。

代价是仓库结构不直观,只能通过 restic 命令访问,不能直接拷文件恢复。

具体怎么做

按顺序执行,每步都验证完再进下一步:

  • restic init 初始化仓库(S3/B2/SFTP 均可)
  • 把密码写进密码文件并单独备份
  • 写备份脚本:指定目录、排除规则、打 tag
  • 加定时任务,失败时告警
  • 每月执行 check 与 prune,并做一次文件级恢复测试

参数与成本对照

把关键数值摊开,方便判断该选哪条路:

操作 作用 频率
backup 创建快照(增量) 每日
check 校验完整性 每周
prune 回收空间 每月
restore 恢复文件/目录 每季演练

用 Restic 做去重加密备份

几个容易踩的坑

下面这些是最常见的错误做法:

  • 密码只存在脑子里:忘了就全废
  • 从不 prune:仓库无限膨胀
  • 备份 /var/lib/docker:大量无用数据
  • 只 check 不 read-data:静默损坏发现不了

最后补两句

备份工具再强,也强不过「定期恢复演练」这个习惯。

工具是手段,理解机制才是能力。命令记不住没关系,知道「该看什么」就够了。

评论 (3)

阿
阿哲

照着做了一遍,确实少走弯路。第二步最容易漏,建议顺手加个检查清单。

南
南风

比「一键脚本」有用多了,知道为什么比知道怎么做重要。

K
Kevin

补充一句:不同版本行为会变,动手前先确认自己的版本号。

发表评论

验证码

提交后需站长审核,通过后才会显示。