备份策略
状态: 探索层 — 调研完成,待决策是否进入设计层 优先级: P1 创建日期: 2026-05-30
问题定义
针对多类数据资产(代码、研究课题、密钥、多媒体、配置),建立两地三副本的备份体系,覆盖本地外置盘、云盘、私有 NAS、GitHub 四个位置。恢复主要由本人操作,他人需授权。
数据资产分类
| 类别 | 示例 | 体积 | 不可再生性 | 推荐方案 |
|---|---|---|---|---|
| 代码项目 | active/, labs/ 中 git 项目 | 不等 | 有 git remote 则安全 | git push |
| 研究课题 | docs/research/ 18 个课题 | ~2MB | 高 — 不在 git 中 | 纳入 git 管理 |
| 密钥 | mykey.py, .env, API tokens | ~50KB | 高 — gitignored | SOPS + age 加密后进 git |
| 多媒体 | 照片、视频、素材 | ~100GB+ | 中 | restic → 外置盘 + NAS |
| Claude 记忆 | ~/.claude/projects/ | ~50KB | 高 — 跨会话积累 | 软链到 git 或 restic |
| Hermes 数据 | ~/.hermes/ (含 kanban) | ~100MB | 高—配置+任务状态 | restic |
| MySQL/Redis | ~/Data/mysql/, ~/Data/redis/ | ~500MB+ | 中—可重建但费时 | 定期 dump + restic |
调研结论
主力备份工具
| 工具 | 优势 | 劣势 | 适合 |
|---|---|---|---|
| restic | S3/B2/NAS/本地全支持,自我修复,27K⭐ | 无 GUI,需 cron/launchd | 推荐 — 生态最大最稳 |
| kopia | KopiaUI 桌面 App,自带调度,并发好 | blob 损坏不自愈,较新 | GUI 优先可选 |
| borg | 压缩率最高,最成熟 | 只支持 SSH/NAS,单线程 | NAS 优先可选 |
关键发现: kopia 有已知的 blob 损坏后无法自愈的问题,restic/borg 更可靠。
加密密钥管理
- SOPS + age:加密后进 git,跟代码一起备份
- age 私钥存密码管理器(1Password/Bitwarden),不回 git
- Git diff 可配置为自动解密显示(本地,需私钥)
云端存储成本
| 服务商 | 价格 | 最低消费 | 适合 |
|---|---|---|---|
| Backblaze B2 | $0.006/GB | 无 | <1TB 首选 |
| Wasabi | $0.0068/GB | $6.99/月 | >1TB 且频繁恢复时 |
macOS 定时调度
- resticprofile:YAML 配置 + 自动生成 launchd,推荐
- 手动 launchd plist:可控性更高但配置繁琐
恢复测试
- 每次备份后:
restic check --read-data - 每周:随机文件恢复验证
- 每季度:完整恢复演练
- 关键原则:未经验证的备份不是备份
待定决策(需你拍板进设计层)
- 主力备份工具倾向(restic / kopia / borg)
- NAS 支持什么协议(SMB/SFTP?)
- 云盘角色(备份目标还是纯同步)
- SOPS + age 密钥加密是否接受
- 本课题优先级(继续推进还是先放着)