Yum在Linux中的备份与恢复策略
yum list installed命令生成已安装软件包的清单,保存到指定目录(如/backup/yum/),便于后续快速恢复。命令示例:sudo yum list installed > /backup/yum/installed_packages.txt。yum reinstall --downloadonly命令下载所有已安装软件包的RPM文件到本地目录(如/backup/yum/packages/),确保软件包文件不丢失。命令示例:sudo yum reinstall --downloadonly --downloaddir=/backup/yum/packages $(cat /backup/yum/installed_packages.txt | awk '{print $1}')。yum reinstall命令读取备份的软件包清单,重新安装所有已安装的软件包,恢复软件环境。命令示例:sudo yum reinstall $(cat /backup/yum/installed_packages.txt | awk '{print $1}')。yum localinstall命令安装备份目录中的所有RPM文件,适用于软件包清单丢失但保留了RPM文件的场景。命令示例:sudo yum localinstall /backup/yum/packages/*.rpm。Yum的配置文件主要位于/etc/yum.repos.d/目录下,包含多个.repo文件(如CentOS-Base.repo),定义了软件仓库的URL、启用状态、GPG密钥等信息,是Yum获取软件包的核心配置。
cp命令复制整个/etc/yum.repos.d/目录到备份路径(如/path/to/backup/)。命令示例:sudo cp -r /etc/yum.repos.d/ /path/to/backup/yum_repos。tar命令创建压缩归档文件,节省存储空间且便于传输。命令示例:sudo tar -czvf /path/to/backup/yum_repos_backup.tar.gz /etc/yum.repos.d/。cron定时任务实现定期自动备份。脚本示例:创建backup_yum_repos.sh,内容为#!/bin/bash; BACKUP_DIR="/path/to/backup/yum_repos_$(date +%Y%m%d%H%M%S)"; mkdir -p "$BACKUP_DIR"; cp -r /etc/yum.repos.d/ "$BACKUP_DIR"; echo "Backup completed to $BACKUP_DIR",然后通过crontab -e添加0 2 * * * /path/to/backup_yum_repos.sh(每天凌晨2点执行)。/etc/yum.repos.d/目录复制到原路径,覆盖现有配置。命令示例:sudo cp -r /path/to/backup/yum_repos/* /etc/yum.repos.d/。restore_yum_repos.sh,内容为#!/bin/bash; BACKUP_FILE="/path/to/backup/yum_repos_20250101000000/etc/yum.repos.d"; TARGET_DIR="/etc/yum.repos.d"; if [ -d "$BACKUP_FILE" ]; then cp -r "$BACKUP_FILE/"* "$TARGET_DIR"; echo "Configuration restored from $BACKUP_FILE"; else echo "Backup directory not found"; exit 1; fi; sudo yum clean all; sudo yum makecache。sudo yum clean all清理旧缓存,再通过sudo yum makecache重建缓存,确保Yum能正确读取新配置。