为了节省空间,我不备份/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
的权限。