温馨提示×

Yum在Linux中的备份与恢复

小樊
48
2026-01-04 15:52:34
栏目: 智能运维

Yum在Linux中的备份与恢复

一 备份策略与准备

  • 适用场景:系统升级、迁移、重装前的快速还原、离线环境重建。
  • 建议同时备份三类内容:
    1. 已安装软件包清单(便于批量重装);
    2. RPM包本体(离线可用,避免仓库不可用);
    3. Yum/DNF仓库配置(保证恢复时解析依赖一致)。
  • 准备动作:创建备份目录并确认磁盘空间,例如:sudo mkdir -p /backup/yum;确保网络与仓库可达(离线场景需提前准备本地或内网仓库)。

二 备份步骤

    1. 备份已安装软件包清单
      保存包名列表,便于后续批量安装:
      sudo yum list installed > /backup/yum/installed_packages.txt
    1. 备份所有已安装包的RPM(离线可用)
      仅下载不安装,便于迁移/离线恢复:
      sudo yum reinstall --downloadonly --downloaddir=/backup/yum/packages $(cat /backup/yum/installed_packages.txt | awk '{print $1}')
      提示:若列表很长,建议分批执行或写入脚本循环处理,避免命令行长度限制。
    1. 备份仓库配置
      便于在新环境快速复用相同源:
      sudo tar czf /backup/yum/repo_backup_$(date +%F).tar.gz /etc/yum.repos.d/
    1. 可选 备份仓库缓存(仅缓存,非必须)
      用于加速恢复阶段的元数据读取:
      sudo tar czf /backup/yum/yum_cache_$(date +%F).tar.gz /var/cache/yum/ /var/cache/dnf/ 2>/dev/null || true
      说明:缓存非一致性备份,不能替代包清单与RPM包。

三 恢复步骤

    1. 准备恢复环境
      恢复仓库配置并重建元数据缓存:
      sudo tar xzf /backup/yum/repo_backup_*.tar.gz -C /
      sudo yum clean all && sudo yum makecache
    1. 方案一 通过包名列表重装(推荐,自动处理依赖)
      sudo yum reinstall $(cat /backup/yum/installed_packages.txt | awk '{print $1}')
    1. 方案二 使用本地RPM包离线安装(无网络或仓库不一致时)
      sudo yum localinstall /backup/yum/packages/*.rpm
    1. 可选 恢复仓库缓存(若有备份)
      sudo tar xzf /backup/yum/yum_cache_*.tar.gz -C /
      然后再次执行:sudo yum clean all && sudo yum makecache
    1. 验证
      检查关键包是否到位:rpm -q yum dnf python3;必要时:yum list installed | wc -l

四 进阶与故障处理

  • 离线/内网环境:搭建本地Yum仓库(如挂载ISO或内网HTTP/FTP),在恢复时优先使用本地源,提升成功率与速度。示例:挂载ISO为本地源并生成缓存,客户端配置baseurl指向本地路径后yum makecache
  • 误删Yum/DNF或Python导致包管理器不可用:
    • 先用rpm -q dnf yum python3确认缺失情况;
    • 从发行方历史仓库(如CentOS Vault)下载匹配版本的RPM,使用rpm -ivh手动安装(注意依赖顺序);
    • 若命令不可达,检查/usr/bin软链与PATH
    • 清理缓存并重建:/usr/bin/dnf clean all && /usr/bin/dnf makecache
    • 最后用dnf/yum恢复缺失组件(如python3)。
  • 注意事项
    • 恢复时依赖解析以当前可用仓库为准,若仓库版本与备份时差异较大,可能出现依赖冲突或版本不一致;
    • 备份与恢复均可能占用大量磁盘空间,建议预留充足空间并分批处理;
    • 对于关键系统,建议在恢复后进行配置与数据校验(如rpm -Va、关键服务自检)。

0