RPM 包(Red Hat / CentOS / Rocky / Alma 等)的备份与恢复,核心目标是:
在系统损坏或迁移时,能快速恢复到“软件包级别一致”的状态,而不是逐包手动重装。
下面按最佳实践分层说明。
.rpm 文件本身这是恢复系统的“蓝图”。
rpm -qa --qf "%{NAME}\n" | sort > /backup/rpm-packages.list
rpm -qa | sort > /backup/rpm-packages-full.list
✅ 建议两种都保留
tar czf /backup/yum-repos.tar.gz /etc/yum.repos.d
如果是 RHEL:
tar czf /backup/subscription-info.tar.gz \
/etc/yum.repos.d \
/etc/pki/entitlement \
/etc/rhsm
RPM 只管安装,不负责保护你改过的配置。
/etc
/opt
/usr/local
/var/lib
/var/spool
tar czf /backup/etc.tar.gz /etc
⚠️ 注意:
/etc 包含系统级配置rpm -qa --qf '%{NAME} %{VENDOR}\n' | grep -v 'Red Hat\|CentOS\|Rocky'
或导出本地 RPM:
mkdir /backup/local-rpms
rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm\n' | \
xargs -I{} cp /var/cache/dnf/*/packages/{} /backup/local-rpms/ 2>/dev/null
(若缓存已清,建议提前保存)
tar xzf /backup/yum-repos.tar.gz -C /
yum install $(cat /backup/rpm-packages.list)
或(推荐,避免缺失)
yum reinstall $(cat /backup/rpm-packages-full.list)
推荐流程:
/etc 等关键配置yum install -y $(cat rpm-packages.list)
❌ 直接备份 /var/lib/rpm
❌ 用 rpm -Uvh *.rpm 恢复系统
❌ 忽略仓库,只靠本地 RPM
❌ 只备份软件,不备份配置
rpm本身不是备份工具,它是包管理器。
dnf history(轻量回滚)dnf history list
dnf history undo <ID>
仅适用于短期操作回滚。
lvcreate --size 2G --snapshot --name root-snap /dev/vg/root
适合:
| 工具 | 用途 |
|---|---|
| ReaR | 裸机恢复 |
| Ansible | 软件状态即代码 |
| Snapper | Btrfs / LVM 快照 |
| Tar + RPM 列表 | 最通用 |
RPM 备份 = 包列表 + 仓库配置 + 软件配置
恢复 = 重装系统 → 恢复仓库 → 批量安装 → 恢复配置
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。