温馨提示×

centos stream8备份策略

小樊
53
2026-01-04 02:17:26
栏目: 智能运维

CentOS Stream 8 备份策略与落地方案

一 策略总览

  • 备份范围与层级
    • 系统配置:优先备份 /etc、包管理状态(如 rpm/dnf 数据库)、关键服务配置(如 nginx、postfix、firewalld)。
    • 业务数据:按业务划分目录(如 /var/www、/opt、/srv),数据库单独备份(如 MySQL/MariaDB、PostgreSQL)。
    • 排除项:避免备份 /proc、/sys、/dev、/tmp、/run、/mnt、/media、/lost+found 等虚拟或临时文件系统。
  • 备份类型与频率
    • 全量:每周一次,保留最近 2–4 周。
    • 增量:每日一次(或每 6–12 小时一次),保留最近 7–14 天。
    • 实时/近实时:对关键目录使用 Syncthing 等工具做持续同步到独立主机/云端。
  • 存储与保留
    • 采用 3-2-1 策略:至少 3 份副本、2 种不同介质、1 份异地/离线。
    • 本地保留用于快速回滚,异地/云端用于灾难恢复。
  • 安全与合规
    • 备份数据加密(传输与静态)、最小权限访问、记录操作审计。
  • 恢复目标
    • 明确 RPO(恢复点目标)RTO(恢复时间目标),据此选择频率与保留周期。
  • 重要提醒
    • CentOS Stream 8 已于 2024-05-01 终止维护,官方不再提供 yum 源与安全更新,存在严重安全隐患。建议尽快升级至 CentOS Stream 9 或迁移至 Rocky Linux 8/9;在过渡期务必强化备份与隔离网络访问。

二 工具与方法选型

  • 文件与目录
    • tar:创建压缩归档,适合全量与配置快照;可排除虚拟/临时目录。
    • rsync:本地/远程同步,支持增量;配合 –link-dest 实现“快照式”增量保留,节省空间。
  • 数据库
    • MySQL/MariaDB:逻辑备份用 mysqldump;物理/热备可用 Percona XtraBackup(支持全量/增量)。
    • PostgreSQL:使用 pg_dump/pg_dumpall 做逻辑备份,或文件系统/块级快照(需一致性保障)。
  • 实时/近实时
    • Syncthing:多端持续同步,适合关键目录的近实时备份与多机互备。
  • 自动化与编排
    • cron 定时任务、systemd 服务管理、日志轮转(如 logrotate)与备份清单校验。

三 示例方案与命令

  • 全量与增量备份脚本(rsync + 快照式保留)
    • 目录结构:/backups/rsync/YYYYMMDD/
    • 首次全量
      #!/usr/bin/env bash
      set -Eeuo pipefail
      BACKUP_ROOT="/backups/rsync"
      DATE=$(date +%Y%m%d)
      SRC="/etc /var"
      EXCLUDE=(/dev /proc /sys /tmp /run /mnt /media /lost+found)
      
      mkdir -p "$BACKUP_ROOT/$DATE"
      RSYNC_OPTS=(-a -z --delete)
      for e in "${EXCLUDE[@]}"; do
        RSYNC_OPTS+=(--exclude="$e")
      done
      
      rsync "${RSYNC_OPTS[@]}" $SRC "$BACKUP_ROOT/$DATE/"
      
    • 后续增量(基于 --link-dest 快照)
      # 在上面的脚本末尾追加(示例保留最近7天)
      KEEP=7
      PREV=$(date -d "$DATE -1 day" +%Y%m%d)
      if [[ -d "$BACKUP_ROOT/$PREV" ]]; then
        rsync "${RSYNC_OPTS[@]}" --link-dest="$BACKUP_ROOT/$PREV" $SRC "$BACKUP_ROOT/$DATE/"
      fi
      
      # 清理过期
      ls -1 "$BACKUP_ROOT" | sort -r | tail -n +$((KEEP+1)) | xargs -r rm -rf
      
  • 全量归档备份(tar)
    sudo mkdir -p /backups/tar
    sudo tar -czvf /backups/tar/centos_stream_$(date +%Y%m%d).tar.gz \
         --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp \
         --exclude=/run --exclude=/mnt --exclude=/media --exclude=/lost+found \
         /etc /var
    
  • 数据库备份示例
    • MySQL/MariaDB
      mysqldump -u root -p --single-transaction --routines --triggers --databases your_db > /backups/db/your_db_$(date +%F).sql
      
    • PostgreSQL
      pg_dump -U postgres -F c -f /backups/db/pg_$(date +%F).dump your_db
      
  • 实时同步(Syncthing,关键目录近实时)
    # 安装后修改 /root/.config/syncthing/config.xml 中 <address>127.0.0.1:8384</address> 为 <address>0.0.0.0:8384</address>
    sudo systemctl restart syncthing@root.service
    sudo systemctl enable syncthing@root.service
    
  • 定时任务(cron)
    # 每天 02:00 执行全量/增量脚本
    0 2 * * * /usr/local/bin/backup_rsync.sh >> /var/log/backup_rsync.log 2>&1
    
    # 每周日 03:00 做一次 tar 全量归档
    0 3 * * 0 /usr/local/bin/backup_tar.sh   >> /var/log/backup_tar.log  2>&1
    

以上命令与做法基于 tar/rsync/Syncthing/cron 的常用实践,适用于 CentOS Stream 8 的文件与配置备份场景。

四 恢复流程与验证

  • 目录/配置恢复(rsync)
    sudo rsync -avz /backups/rsync/2025*/etc/  /etc/
    sudo rsync -avz /backups/rsync/2025*/var/  /var/
    
  • 归档恢复(tar)
    sudo tar -xzvf /backups/tar/centos_stream_2025-*.tar.gz -C /
    
  • 数据库恢复
    • MySQL/MariaDB
      mysql -u root -p < /backups/db/your_db_2025-*.sql
      
    • PostgreSQL
      pg_restore -U postgres -d your_db /backups/db/pg_2025-*.dump
      
  • 验证与演练
    • 定期校验备份完整性(如 sha256sum)、抽样恢复演练、检查应用与数据库可用性。
    • 将备份与恢复步骤纳入变更流程,确保关键操作前已有可用备份。

五 监控 保留与迁移建议

  • 监控与告警
    • 记录 cron 输出与系统日志,监控备份目录容量与最近一次成功时间;失败即告警。
  • 保留与容量
    • 结合业务变更频率设置保留(如全量 2–4 周、增量 7–14 天),并配置容量阈值与自动清理。
  • 迁移与升级
    • 在迁移/升级前做一次全量备份;迁移后在隔离网络验证恢复流程,再切换生产流量。
  • 安全加固
    • 备份存储与传输加密、访问最小化、定期更换凭据;对云端/异地副本启用版本与对象锁(如支持)。
  • 版本风险提示
    • 再次强调:CentOS Stream 8 已停止维护,应尽快升级至 CentOS Stream 9 或迁移至 Rocky Linux 8/9,以降低安全与合规风险。

0