优势
不足
产品信息
详细说明
服务商概述
restic 是一个开源备份程序,主要作者来自德国,2015 年前后开始开发,用 Go 编写为单一二进制。它把备份组织成「快照」:每次运行生成一个快照,快照之间共享内容寻址的数据块,因此增量备份不需要维护脆弱的增量链。
这个设计对备份与迁移很重要。传统增量备份依赖「上一个链节完整」,一旦中间某次备份损坏,后续恢复可能全部失败;restic 的快照彼此独立,删掉任意快照不影响其他快照的可恢复性,restic check 还能主动验证存储库完整性。
它支持本地目录、SFTP、S3、B2、Wasabi、Azure 等后端,加密与去重默认开启。代价是没有官方图形界面与调度器,需要自己用 cron 与监控补齐,这也是它与商业备份产品的分界线。
核心优势
- 快照式结构让各次备份互不依赖,单个快照损坏不影响其他快照的恢复
- 内容寻址 + 块级去重,重复数据的多版本备份体积远小于全量叠加
- 默认 AES-256 加密与 HMAC 校验,存储库放在第三方也是密文
- restic check 可主动校验存储库完整性,把「备份能不能恢复」变成可执行动作
产品生态
存储库与快照管理
init 创建加密存储库,backup 生成快照,forget 与 prune 控制保留。prune 的收益是回收空间,代价是重写索引,大存储库上耗时较长,建议放在低峰并监控耗时变化。
完整性校验与恢复
check 分「结构校验」与「数据校验」两档,后者读取全部数据块、耗时但与真实恢复最接近。生产环境建议每周结构校验、每月抽样数据校验,并定期做真实恢复到临时目录。
不足之处
- 没有官方图形界面与调度器,需自建 cron、日志与告警
- prune 在大存储库上耗时明显,可能占用较多 IO 与时间窗口
- 不支持块级增量之外的差异算法,某些数据类型(如大型数据库文件)去重效果有限
- 社区支持为主,缺少厂商级 SLA 与托管服务
适用场景
- Linux 服务器定期备份(★★★★★):单二进制 + 快照 + 校验,是服务器备份的常用组合
- 推到对象存储的异地副本(★★★★★):S3/B2/Wasabi 后端开箱可用,配合 rclone 也可做二次分发
- 数据库转储备份(★★★★):转储文件去重效果有限,需配合压缩与保留策略
- 需要图形界面与托管的团队(★★):缺 GUI 与调度,需自行建设运维体系
价格参考
| 套餐 | 价格 | 能力边界 |
|---|---|---|
| 软件许可 | $0 | 开源(BSD 2-Clause),无授权费用 |
| 调度与监控 | 自建 | cron/systemd + 日志告警 |
| 存储成本 | 按后端计 | 由目标存储厂商单独计费 |
软件免费,成本在存储与运维。值得注意的是 prune 的时间开销随存储库增长而上升,做容量规划时应把「每月一次 prune 的时间窗口」当作固定成本,而不是可选项。
常见问题
-
restic 和 borg 有什么不同? 两者都是去重加密备份,主要差别在生态与后端支持:restic 原生支持 S3、B2 等对象存储且为单二进制,borg 更侧重本地与 SSH 场景。需要「直接推对象存储」时 restic 更省事。
-
怎么验证备份可用? 跑 restic check --read-data-subset 做抽样数据校验,再定期 restore 到临时目录比对文件清单。只看 backup 命令退出码不够,因为写入成功不代表存储库可完整恢复。
-
能备份正在运行的数据库吗? 不能直接备份数据文件,应先做逻辑转储(如 mysqldump、pg_dump)再备份转储文件,或用数据库自带的物理备份工具。直接备份运行中的数据库文件容易得到不一致快照。