Debian Minimal 备份重要数据的实用方案
一 备份策略与准备
- 明确备份范围:优先保护用户数据(如 /home)、关键配置(如 /etc)、以及必要的服务数据目录(如 /var/lib/mysql、/var/www 等)。
- 选择备份类型:用 全量备份 做基线,配合 增量/差异备份 节省时间与空间。
- 存储与隔离:将备份放到 外部硬盘 或 远程服务器,与源系统物理/逻辑隔离。
- 保留与验证:制定保留策略(如保留最近 7–30 天),并定期做 恢复演练 验证可用性。
- 自动化与监控:用 cron 定时执行,输出日志并做简单告警。
二 常用工具与命令示例
- 使用 tar 做全量/增量/差异备份
- 全量(系统级,排除虚拟与临时文件系统):
sudo tar -czvpf /backup/full-$(date +%F).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/lost+found /
- 增量(基于上次快照):
sudo tar -czvpf /backup/inc-$(date +%F).tar.gz -g /backup/snapshot.snap /
- 差异(24 小时内变更的 /var):
find /var -mtime -1 -print | tar -czvpf /backup/diff-$(date +%F).tar.gz -T -
- 使用 rsync 做高效增量同步(本地或远程)
- 本地:
rsync -aAXv --delete /home/ /backup/home/
- 远程(SSH):
rsync -aAXv -e ssh --delete /home/ user@remote:/backup/home/
- 使用 duplicity 做加密增量备份(适合含敏感数据的目录)
- 本地:
duplicity --full-if-older-than 1M /home file:///backup/duplicity/
- 远程(SFTP):
duplicity --full-if-older-than 1M /home sftp://user@remote/backup/duplicity/
- 使用 Clonezilla 做整盘/分区克隆(系统级灾难恢复)
制作可启动 U 盘,选择 device-device 或 device-image 模式,按向导备份到外置硬盘或网络存储。
三 自动化与保留策略
- 定时全量 + 日常增量(示例)
- 每天 02:00 做增量:
0 2 * * * tar -czvpf /backup/inc-$(date +%F).tar.gz -g /backup/snapshot.snap /
- 每周日 01:00 做全量并重建快照:
0 1 * * 0 tar -czvpf /backup/full-$(date +%F).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/lost+found / && rm -f /backup/snapshot.snap && tar --create --file=/backup/snapshot.snap --listed-incremental=/backup/snapshot.snap /
- 保留与清理(示例:保留 7 天)
0 3 * * * find /backup -name “*.tar.gz” -mtime +7 -delete
- 日志与监控:将标准输出/错误重定向到日志文件,并配合简单脚本检测失败并通知。
四 恢复与验证
- 从 tar 归档恢复
- 全量:
sudo tar -xzvpf /backup/full-2025-08-01.tar.gz -C /
- 增量:按时间顺序依次解包各增量包(与生成顺序一致)。
- 从 rsync 备份恢复
- 目录级:
rsync -aAXv /backup/home/ /home/
- 从 duplicity 恢复
- 最新版本:
duplicity restore file:///backup/duplicity/ /restore/home/
- 指定时间点:
duplicity --restore-time 2025-08-01T00:00:00 file:///backup/duplicity/ /restore/home/
- 验证要点:检查关键文件是否存在、权限是否正确、服务能否启动,并抽样打开文档/数据库验证一致性。
五 实用建议与注意事项
- 备份前先停写关键服务(如数据库),或使用支持热备份的工具/方法,避免数据不一致。
- 始终使用 -p(保留权限/属性)与 -A(保留 ACL)等选项;远程传输建议用 SSH 并配置密钥登录。
- 对含敏感数据的备份启用 加密(如 duplicity 的 GPG),并妥善保管密钥/口令。
- 定期做 恢复演练,至少每月一次,确保流程与介质可用。
- 介质轮换与异地存放:准备 多份 备份并轮换,至少一份 异地/离线,降低灾难风险。