温馨提示×

CentOS Stream 8如何进行系统备份

小樊
39
2025-12-21 11:09:03
栏目: 智能运维

CentOS Stream 8 系统备份与恢复实操指南

一 备份策略与准备

  • 备份目标与取舍:优先保护配置与可变数据,建议至少覆盖 /etc(系统配置)、/var(日志、数据库、包缓存等)。不建议直接对运行中的根分区做镜像级备份,若必须做整盘镜像,请在救援/离线环境操作。
  • 运行环境:准备一块容量足够的本地盘或网络存储(NFS/SFTP),备份期间避免写入大量临时文件。
  • 版本提醒:CentOS Stream 8 已于 2024-05-01 终止维护,存在安全风险;完成备份后建议尽快迁移至 CentOS Stream 9Rocky Linux 8/9

二 方法一 rsync 增量备份(文件级,推荐)

  • 基本思路:用 rsync 同步关键目录到备份位置,按日期分层,便于回滚与保留多份历史。
  • 步骤与示例:
    1. 创建备份目录
      sudo mkdir -p /backups/centos_stream/$(date +%Y%m%d)
    2. 同步关键目录(排除虚拟与临时文件系统)
      sudo rsync -aAX --info=progress2
      –exclude={“/dev/“,”/proc/”,“/sys/“,”/tmp/”,“/run/“,”/mnt/”,“/media/“,”/lost+found"}
      /etc/ /backups/centos_stream/$(date +%Y%m%d)/etc/ sudo rsync -aAX --info=progress2
      –exclude={"/dev/
      ”,“/proc/“,”/sys/”,“/tmp/“,”/run/”,“/mnt/“,”/media/”,“/lost+found”}
      /var/ /backups/centos_stream/$(date +%Y%m%d)/var/
    3. 可选归档与校验
      sudo tar -czvf /backups/centos_stream/$(date +%Y%m%d)/etc_var_$(date +%F).tar.gz
      -C /backups/centos_stream/$(date +%Y%m%d) etc var
      sha256sum /backups/centos_stream/$(date +%Y%m%d)/etc_var_$(date +%F).tar.gz \

      /backups/centos_stream/$(date +%Y%m%d)/etc_var_$(date +%F).sha256

    4. 远程备份(示例到 SSH 主机)
      rsync -aAX --info=progress2
      –exclude={“/dev/“,”/proc/”,“/sys/“,”/tmp/”,“/run/“,”/mnt/”,“/media/*”,“/lost+found”}
      /etc/ user@backup.example.com:/backups/$(hostname)-$(date +%Y%m%d)/etc/
  • 说明:参数 -aAX 保留权限、属主、ACL、扩展属性;排除列表覆盖运行时虚拟文件系统与挂载点,避免重复备份与不一致。

三 方法二 tar 全量归档(文件级)

  • 适用场景:需要一次性打包核心配置与数据的场景。
  • 示例命令:
    sudo tar -czvf /backups/centos_stream/full_$(date +%F).tar.gz
    –exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp
    –exclude=/mnt --exclude=/media --exclude=/lost+found
    /etc /var
  • 恢复要点:
    sudo tar -xzvf /backups/centos_stream/full_$(date +%F).tar.gz -C /
  • 提示:若需包含更多目录(如 /usr/local/opt),在 tar 命令末尾追加路径即可;务必保留相同的排除项以避免将挂载点内容打进归档。

四 方法三 dd 整盘镜像(分区/整盘级,离线)

  • 适用场景:需要克隆磁盘或分区、快速还原到相同硬件。
  • 步骤与示例:
    1. 从 LiveCD/救援环境启动(不要在运行中的系统上对系统盘执行 dd)。
    2. 查看磁盘与分区:
      lsblk; fdisk -l
    3. 整盘镜像(含分区表与引导):
      sudo dd if=/dev/sda of=/mnt/backup/disk_sda_$(date +%F).img bs=4M conv=noerror,sync
      如需压缩:
      sudo dd if=/dev/sda bs=4M conv=noerror,sync | gzip -6 > /mnt/backup/disk_sda_$(date +%F).img.gz
    4. 还原:
      sudo dd if=/mnt/backup/disk_sda_$(date +%F).img of=/dev/sda bs=4M conv=noerror,sync
      或解压后还原:
      gzip -dc /mnt/backup/disk_sda_$(date +%F).img.gz | sudo dd of=/dev/sda bs=4M conv=noerror,sync
    5. 收尾:
      sync; blockdev --flushbufs /dev/sda
  • 重要提示:
    • 镜像级还原会覆盖目标盘分区与引导,务必核对目标盘;跨硬件还原可能导致 网卡名变化(如 eth0→eth1) 等,需调整 udev 或网络配置。
    • 不建议在挂载的根分区上直接执行 dd;若必须镜像,请离线或在救援环境进行。

五 自动化与恢复演练

  • 定时任务示例(每天 02:00 执行):
    1. 备份脚本 /usr/local/bin/backup_stream8.sh
      #!/usr/bin/env bash set -e BACKUP_ROOT=“/backups/centos_stream” DATE=$(date +%Y%m%d) DIR=“$BACKUP_ROOT/$DATE” mkdir -p “$DIR” rsync -aAX --info=progress2
      –exclude={“/dev/“,”/proc/”,“/sys/“,”/tmp/”,“/run/“,”/mnt/”,“/media/“,”/lost+found"}
      /etc/ “$DIR/etc/” rsync -aAX --info=progress2
      –exclude={"/dev/
      ”,“/proc/“,”/sys/”,“/tmp/“,”/run/”,“/mnt/“,”/media/”,“/lost+found”}
      /var/ “$DIR/var/” tar -czvf “$DIR/etc_var_$DATE.tar.gz” -C “$DIR” etc var sha256sum “$DIR/etc_var_$DATE.tar.gz” > “$DIR/etc_var_$DATE.sha256”
    2. 赋权与定时
      chmod +x /usr/local/bin/backup_stream8.sh
      crontab -e
      0 2 * * * /usr/local/bin/backup_stream8.sh
  • 恢复演练建议:
    • 定期在测试环境验证:按日期目录执行 tar 还原或 rsync 回拷,检查关键服务与配置是否可用;校验 SHA256 确保一致性。
    • 数据库等应用数据建议采用各自工具(如 mysqldump)单独备份并在恢复时按序启动服务。

0