温馨提示×

CentOS Minimal系统备份与恢复方法

小樊
49
2026-01-07 21:30:54
栏目: 智能运维

CentOS Minimal 系统备份与恢复实用指南

一 备份策略与准备

  • 目标与范围:优先保护系统关键目录(如 /etc、/var、/usr/local、/opt、/root),必要时做整盘镜像;对运行中的数据库等动态数据,先停写或用应用层工具导出再备份。
  • 工具选型:
    • 文件级:tar、rsync(灵活、易验证、适合增量)。
    • 块级:dd、LVM 快照(整盘/分区镜像,适合快速整机回滚)。
    • 专用工具:Mondo Rescue、Clonezilla(生成可启动介质,适合离线整机迁移/恢复)。
  • 存储与策略:遵循 3-2-1 规则(3 份副本、2 种介质、1 份异地/离线),定期做恢复演练,验证备份可用性与完整性。

二 方法一 文件级备份与恢复(tar)

  • 适用场景:最小化系统、无 LVM、需要快速全量+可选择性恢复。
  • 备份命令(以 root 执行,建议 screen/tmux 保活):
    • 全量打包并压缩(gzip):
      tar cvpzf /backup/full_$(date +%F).tar.gz \
        --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
        --exclude=/mnt --exclude=/media --exclude=/lost+found \
        --exclude=/backup / 
      
    • 若需更高压缩率(bzip2):将 z 改为 j,扩展名用 .tar.bz2
    • 说明:排除 /proc、/sys、/dev、/run 等虚拟或运行时文件系统;如 /media 挂载了外部盘,务必排除;备份文件本身也要排除,避免递归。
  • 恢复步骤:
    1. 建议从 LiveCD/救援模式或单用户环境启动,确保目标分区未挂载或挂载为只读。
    2. 解包覆盖:
      # gzip
      tar xvpfz /backup/full_YYYY-MM-DD.tar.gz -C /
      # bzip2
      tar xvpfj /backup/full_YYYY-MM-DD.tar.bz2 -C /
      
    3. 重建被排除的目录:
      mkdir -p /proc /sys /dev /run /mnt /media /lost+found
      
    4. 修复 SELinux 安全上下文:
      restorecon -Rv /
      
    5. 重启:
      reboot
      
  • 提示:tar 恢复会覆盖同名文件,操作前确认备份来源与目标一致;如仅恢复部分目录,可将目标路径改为相应目录。

三 方法二 文件级增量备份与恢复(rsync)

  • 适用场景:日常备份、远程/本地增量同步、目录级精细恢复。
  • 全量与增量示例:
    • 本地全量:
      rsync -aAX --delete / /backup/rootfs/$(date +%F) \
        --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
        --exclude=/mnt --exclude=/media --exclude=/lost+found --exclude=/backup
      
    • 本地增量(基于上次备份):
      rsync -aAX --delete / /backup/rootfs/latest \
        --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
        --exclude=/mnt --exclude=/media --exclude=/lost+found --exclude=/backup \
        --link-dest=/backup/rootfs/YYYY-MM-DD
      
    • 远程备份(通过 SSH):
      rsync -aAXz --delete -e ssh / user@remote:/backup/rootfs/latest
      
  • 恢复步骤:
    • 整机回滚:
      rsync -aAX --delete /backup/rootfs/YYYY-MM-DD/ /
      
    • 目录级恢复:
      rsync -aAX /backup/rootfs/YYYY-MM-DD/etc/ /etc/
      
  • 提示:使用 -aAX 保留权限、属主、扩展属性与 ACL;如目标已存在同名文件,增量会按规则更新或删除以保持一致性。

四 方法三 块级与系统级备份与恢复(dd、LVM 快照、救援模式)

  • 整盘/分区镜像(dd):
    • 备份到镜像文件:
      dd if=/dev/sda of=/backup/disk_$(date +%F).img bs=4M status=progress
      
    • 恢复到磁盘(目标盘容量需不小于源盘):
      dd if=/backup/disk_YYYY-MM-DD.img of=/dev/sda bs=4M status=progress
      
    • 注意:操作前确认 if/of 参数,避免写反;镜像恢复会覆盖目标盘全部数据。
  • LVM 快照(适合变更前快速回滚):
    # 假设根卷为 /dev/vg0/root,创建 10G 快照
    lvcreate -L 10G -s -n root_snap /dev/vg0/root
    mkdir -p /mnt/snap
    mount /dev/vg0/root_snap /mnt/snap
    # 对快照做 tar/rsync 备份
    tar cvpzf /backup/root_snap_$(date +%F).tar.gz -C /mnt/snap .
    umount /mnt/snap
    lvremove /dev/vg0/root_snap
    
  • 救援模式修复引导(系统无法启动时):
    1. 用 CentOS 安装介质启动,选择 Troubleshooting → Rescue a CentOS system
    2. 进入救援环境后挂载根分区并切换根:
      chroot /mnt/sysimage
      
    3. 修复 GRUB:
      grub2-install /dev/sda
      grub2-mkconfig -o /boot/grub2/grub.cfg
      
    4. 检查文件系统(按需):
      fsck /dev/sdaX
      
    5. 退出并重启:
      exit
      reboot
      
  • 提示:dd 镜像适合同容量或更大磁盘的克隆;LVM 快照适合在升级/变更前创建回滚点;救援模式可修复 GRUB、fstab、initramfs 等启动相关问题。

五 关键注意事项与演练清单

  • 排除清单:备份时始终排除 /proc、/sys、/dev、/run、/mnt、/media、/lost+found 及备份文件所在目录;如 /boot 单独分区,需单独纳入备份/恢复流程。
  • SELinux:使用 tar/rsync 恢复后执行 restorecon -Rv /,避免安全上下文错配导致服务异常。
  • 文件系统一致性:尽量在单用户/救援模式或卸载目标分区后执行恢复;必要时先做 fsck
  • 验证与演练:定期做恢复演练,校验关键服务可用性、用户与权限、网络与存储挂载、应用数据一致性。
  • 数据库与应用:先停写或用 mysqldump/pg_dump 等导出数据,再纳入备份;恢复时按依赖顺序启动服务。
  • 安全与合规:备份数据加密存储,访问最小化;遵循 3-2-1 策略并保留多份历史版本。

0