温馨提示×

如何备份Debian数据

小樊
46
2025-11-15 10:06:36
栏目: 智能运维

Debian 数据备份与恢复实用指南

一 备份策略与准备

  • 明确范围:优先备份用户数据(如 /home/etc/var 中的关键业务数据)、数据库数据目录、以及必要的证书与密钥。系统级快照与镜像用于快速回滚与整机迁移。
  • 选择介质:使用外置 USB 硬盘NAS远程服务器;重要数据建议加密并做异地存放。
  • 频率与保留:采用“全量 + 增量”策略,例如每周全量、每日增量;保留至少2–4个周期的历史版本。
  • 一致性与可用性:备份时尽量避免高写入负载;定期做恢复演练校验(如校验和/抽样解压)。

二 常用方法与命令

  • 文件与目录归档(tar)

    • 全量备份:
      sudo tar -czvf /backup/backup-$(date +%F).tar.gz \
        --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp \
        --exclude=/run --exclude=/mnt --exclude=/media --exclude=/lost+found \
        /
      
    • 恢复:
      sudo tar -xzvf /backup/backup-2025-11-15.tar.gz -C /
      
    • 说明:适合一次性打包与迁移,便于校验与压缩存储。
  • 目录同步与增量(rsync)

    • 本地/远程增量备份(保持权限、软链、ACL、扩展属性):
      sudo rsync -aAXv --delete /path/to/source/ /path/to/backup/
      # 或到远程
      sudo rsync -aAXv --delete /path/to/source/ user@remote:/path/to/backup/
      
    • 恢复:
      sudo rsync -av /backup/ /path/to/destination/
      
    • 说明:高效、灵活,适合日常增量与目录级恢复。
  • 系统快照(Timeshift)

    • 安装与创建快照:
      sudo apt update && sudo apt install timeshift
      sudo timeshift-launcher   # 或 sudo timeshift --create
      
    • 恢复:在 Timeshift 界面选择快照并执行,或在 LiveCD 环境下运行 sudo timeshift --restore
    • 说明:面向系统分区与配置的回滚,不替代用户数据备份。
  • 加密增量备份(Duplicity)

    • 备份(GPG 加密,按时间做增量):
      sudo apt-get install duplicity
      duplicity --full-if-older-than 1M /path/to/source file:///backup/destination
      
    • 恢复:
      duplicity file:///backup/destination /path/to/restore
      
    • 说明:适合对敏感数据做加密、去重与增量存档。
  • 磁盘/分区镜像(dd)

    • 整盘镜像(块级拷贝,适合同硬件迁移):
      sudo dd if=/dev/sda of=/backup/sda-$(date +%F).img bs=4M status=progress
      
    • 恢复:
      sudo dd if=/backup/sda-2025-11-15.img of=/dev/sda bs=4M status=progress
      
    • 说明:镜像包含分区与引导,但占用空间大、对硬件依赖强。
  • 离线整机克隆(Clonezilla)

    • 制作可启动 U 盘,进入 Clonezilla Live,选择 device-image 模式,按向导备份到外置盘或网络共享;恢复时选择同一镜像即可。
    • 说明:适合批量部署与整机灾备。

三 自动化与异地备份

  • 脚本化备份(示例)
    #!/usr/bin/env bash
    set -e
    SRC="/home /etc /var/www"
    DST="/backup/$(hostname)-$(date +%F)"
    mkdir -p "$DST"
    
    # 全量 tar
    tar -czvf "$DST/full-$(date +%F).tar.gz" --exclude=/proc --exclude=/sys \
        --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/mnt \
        --exclude=/media --exclude=/lost+found $SRC
    
    # 增量 rsync
    rsync -aAXv --delete $SRC "$DST/rsync-incremental/"
    
    echo "Backup finished at $(date)"
    
  • 定时任务(cron)
    • 每天 02:00 执行脚本:
      0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
      
    • 每周日 03:00 做全量 tar:
      0 3 * * 0 /usr/local/bin/backup_tar.sh >> /var/log/backup_tar.log 2>&1
      
  • 远程与异地
    • rsync 通过 SSH 同步到远程主机或 NAS,实现异地离线双保险。

四 恢复步骤与注意事项

  • 恢复要点
    • tar 归档:按备份时的路径解压到根或目标目录;必要时使用 --numeric-owner 保持 UID/GID。
    • rsync:从备份目录同步回业务目录,注意目标路径末尾斜杠对行为的影响。
    • Timeshift:在图形界面或 timeshift --restore 中按向导回滚到指定快照。
    • Clonezilla:从启动介质进入,选择 device-image 模式,指向先前镜像执行恢复。
    • dd 镜像:在 Live 环境下对目标盘写入镜像,写前确认设备名,避免覆盖错误磁盘。
  • 关键注意事项
    • 排除虚拟文件系统与临时目录:/proc、/sys、/dev、/tmp、/run、/mnt、/media、/lost+found
    • 备份文件不要存放在被备份的目录中(例如不要把压缩包放在 / 下)。
    • 校验与演练:定期做恢复演练校验和检查,确保可用性。
    • 加密与权限:敏感数据使用 GPG/加密;保留必要的 sudo 权限与最小暴露面。
    • 变更管理:系统重大变更(分区/升级/迁移)前先做一次快照或全量备份。

0