Debian 系统数据备份实用指南
说明
“Debian Context”应为Debian 系统的笔误。下面按场景给出常用、可落地的备份与恢复方法,覆盖文件/目录、整盘/系统、数据库与自动化等需求。
常用工具与场景
- 文件/目录归档与压缩:使用tar进行全量、增量与差异备份,适合配置与用户数据。
- 目录同步与镜像:使用rsync做本地或远程增量同步,适合日常增量与快速回滚。
- 加密增量与云/异地:使用Duplicity(支持加密与增量),适合对安全性有要求的备份。
- 系统快照与回滚:使用Timeshift做系统级快照(Btrfs/ZFS 或 rsync 后端),适合系统配置与软件回滚。
- 整盘/批量部署:使用Clonezilla做磁盘/分区镜像,适合迁移与灾难恢复。
- 数据库:使用mysqldump对 MySQL/MariaDB 做逻辑备份,适合跨版本迁移与点时间恢复。
快速上手命令
- tar 全量备份与恢复
- 备份:tar -czvf /backup/full-$(date +%F).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/lost+found /
- 恢复:tar -xzvf /backup/full-2025-11-30.tar.gz -C /
- tar 增量备份(基于快照文件)
- 首次:tar -czvf -g /backup/snap.snar /path > /backup/inc-$(date +%F).tar.gz
- 后续:tar -czvf -g /backup/snap.snar /path > /backup/inc-$(date +%F).tar.gz
- tar 差异备份(近 1 天修改)
- 备份:find /var -mtime -1 -print | tar -czvf /backup/diff-$(date +%F).tar.gz -T -
- rsync 本地/远程镜像
- 本地:rsync -aAX --delete /src/ /dst/
- 远程:rsync -avz --delete /src/ user@remote:/dst/
- Duplicity 加密增量(本地存储示例)
- 备份:duplicity --full-if-older-than 7D /src file:///backup/duplicity/
- 恢复:duplicity file:///backup/duplicity/ /restore/
- Timeshift 系统快照
- 安装:sudo apt install timeshift
- 创建:sudo timeshift --create
- 恢复:sudo timeshift --restore
- Clonezilla 整盘镜像
- 制作:从 U 盘启动进入 Clonezilla,选 device-image,按向导备份到外置盘/网络共享
- 恢复:同法进入,选择镜像与目标磁盘恢复
- MySQL/MariaDB 逻辑备份
- 备份:mysqldump -u USER -p --single-transaction --routines --triggers DATABASE > db-$(date +%F).sql
- 恢复:mysql -u USER -p DATABASE < db-2025-11-30.sql
自动化与保留策略
- 使用 cron 定时执行备份(示例:每日 02:00 打包 /home)
- 0 2 * * * tar -czvf /backup/home-$(date +%F).tar.gz -C /home .
- 简单保留脚本(保留最近 7 天)
- find /backup -name “*.tar.gz” -mtime +7 -delete
- 使用Backup Ninja编排多任务(数据库、文件系统、远程/增量、调度)
- 安装:sudo apt-get install backupninja
- 配置:sudo ninja-config 创建任务,设置源/目标、类型(增量)、频率(如 0 2 * * *)
恢复要点与注意事项
- 恢复顺序建议:先停服务 → 恢复数据库 → 恢复文件/配置 → 校验权限与 SELinux/AppArmor → 启动服务。
- 使用 rsync 镜像时,目标末尾的斜杠含义不同:/src/ 与 /dst/ 为“目录内同步”,/src 与 /dst 为“目录整体移动/重命名”。
- 系统级打包恢复时务必排除**/proc、/sys、/dev、/run、/tmp、/lost+found**等虚拟或临时文件系统,避免异常与膨胀。
- 定期做恢复演练(抽样还原到临时目录验证可用性),并保留至少1 份异地/离线副本,降低单点风险。
- 数据库备份建议配合事务一致性(如 --single-transaction)与二进制日志(mysqlbinlog)实现更细粒度的点时间恢复。