将旧的/ etc恢复到较新的系统(CentOS)

为了节省空间,我不备份/usr/usr/local除外), /bin/sbin/lib 。 而是使用rpm -qa --qf '%{NAME}\n'来获取我需要安装的软件包列表来恢复这些目录的内容。

在做一个裸机恢复时,在安装一个最小的CentOS系统之后,我用yum将这些软件包安装到列表中。

下一步是恢复/等,但这里有一个问题:我刚刚安装的软件包可能是一个新的版本比我在旧的系统上创build备份时出现的版本。 因此,如果在同时添加了重要的configuration指令的情况下,复制旧的/ etc可能会破坏事物,如果configuration格式同时发生变化,或者使我的安装不太安全。 检查每一个configuration文件是一个选项,但我宁愿避免它。 能否以更自动的方式完成?

运行rpm -Vac 。 你会得到一个由RPM安装的每个configuration文件的列表,这个文件已被修改

另外,如果你安装软件包之前还原/etc的内容,那么yum会注意到,并放置任何与.rpmnew扩展名不同的configuration文件。 然后,您可以单独查看这些文件。

你可以看看etckeeper 。

etckeeper是一个让/ etc存储在git,mercurial,bazaar或darcs存储库中的工具集合。 它挂钩到[apt,yum],以便在升级包时自动提交对/ etc所做的更改。 它跟踪git通常不支持的文件元数据,但是这对/ etc很重要,比如/etc/shadow的权限。