备份的目标是「能恢复」,不是「有拷贝」。个人栈至少做到:代码多远端、内容可重建、数据定期导出异地存放、密钥离线副本,并且每季度做一次恢复演练。
先接受一个事实
硬盘会坏,账号会丢,rm -rf 会手滑,云厂商也会出事故。
个人项目挂掉最常见原因不是黑客,而是 没有可验证的恢复路径。
3-2-1 精简版
- 3 份副本
- 2 种介质/渠道(例如:Git 远端 + 对象存储)
- 1 份异地(不在同一台 VPS)
分类备份
1. 代码
| 做法 | 说明 |
|---|---|
| Git 远端 | GitHub/GitLab 等至少一个 |
| 保护主分支 | 防误推 |
| 忽略密钥 | .env 永不进库 |
代码备份 ≠ 数据备份。
2. 内容站(Markdown)
内容在 Git 里时,代码备份已覆盖文章。
若在 CMS/Notion:定期导出 Markdown/HTML。
3. 数据库 / 体积数据
# Postgres 示例:逻辑备份
pg_dump -Fc yourdb > backup-$(date +%F).dump
- 每日或每周(按变更频率)
- 上传到另一家云的对象存储
- 保留最近 N 份 + 每月一份
Docker volume 只停在本机 = 还不够。
4. 密钥与 2FA 恢复码
- 密码管理器导出加密备份
- 2FA 恢复码纸质或离线加密存放
- 域名注册商、云账号、Git 令牌分级
丢密钥往往比丢文章更致命。
自动化建议(克制)
Cron 每周
→ 导出数据库
→ 加密(可选)
→ 上传对象存储
→ 失败则通知你
可用系统 cron 或 n8n 调用脚本。失败通知比「静默成功幻想」重要。
恢复演练(每季度 30 分钟)
模拟:
- 新目录/新机器
- clone 代码
- 恢复最新数据备份
- 配置环境变量
- 站点可访问
演练失败的备份 = 假备份。把问题写进清单。
最小清单(即日起)
- 代码在远端且能 clone
- 生产数据至少有一份离机备份
- 域名与云账号开 2FA
- 知道上一版静态站点如何回滚
- 写过恢复步骤(哪怕半页纸)
下一步
RELATED / 相关推荐
接着读这些
按同一栏目、标签与技术栈为你挑选。