为了节省空间,我不备份/usr
(除了/usr/local
)、/bin
和/sbin
。/lib
相反,我执行rpm -qa --qf '%{NAME}\n'
来获取需要安装的软件包列表,以恢复这些目录的内容。
在进行裸机恢复时,安装了最小 CentOS 系统后,我使用 yum 安装列表中的软件包。
下一步是恢复 /etc,但这里存在一个问题:我刚刚安装的软件包可能比我创建备份时旧系统上的软件包版本更新。因此,如果配置格式在此期间发生变化,复制旧的 /etc 可能会破坏某些东西,如果在此期间添加了重要的配置指令,则可能会降低我的安装的安全性。检查每个配置文件是一种选择,但我宁愿避免这样做。是否可以采用更自动化的方式完成?
答案1
运行rpm -Vac
。你将获得 RPM 安装的每个配置文件的列表已被改变。
另外,如果你恢复/etc
前安装软件包后,yum 会注意到,并将任何不同的配置文件放置在.rpmnew
扩展名下。然后,您可以单独查看这些文件。
答案2
你可以看看etckeeper。
etckeeper 是一组工具,用于将 /etc 存储在 git、mercurial、bazaar 或 darcs 存储库中。它与 [apt、yum] 挂钩,以便在软件包升级期间自动提交对 /etc 所做的更改。它跟踪 git 通常不支持但对 /etc 很重要的文件元数据,例如 的权限
/etc/shadow
。