В целях экономии места я не делаю резервную копию /usr
(Кроме /usr/local
), /bin
, /sbin
и /lib
. Вместо этого я делаю rpm -qa --qf '%{NAME}\n'
чтобы получить список пакетов, которые мне нужно установить, чтобы восстановить содержимое этих каталогов.
При восстановлении с нуля после установки минимальной системы CentOS я устанавливаю пакеты из списка с помощью yum.
Следующим шагом является восстановление / etc, но здесь возникает проблема: пакеты, которые я только что установил, могут быть более новой версии, чем те, которые были в моей старой системе, когда я создавал резервную копию. Таким образом, копирование моего старого файла / etc может привести к поломке, если форматы конфигурации тем временем изменились, или сделать мою установку менее безопасной, если тем временем были добавлены важные директивы конфигурации. Проверка каждого файла конфигурации - это вариант, но я бы предпочел этого избежать. Можно ли сделать это более автоматизированным способом?
Бегать rpm -Vac
. Вы получите список всех файлов конфигурации, установленных RPM. который был изменен.
Также, если вы восстановите содержимое /etc
перед установки пакетов, тогда yum заметит и поместит все файлы конфигурации, которые отличаются .rpmnew
расширение. Затем вы можете пойти и просмотреть эти файлы по отдельности.
Вы можете взглянуть на etckeeper.
etckeeper - это набор инструментов, позволяющих хранить / etc в репозиториях git, mercurial, bazaar или darcs. Он подключается к [apt, yum] для автоматической фиксации изменений, внесенных в / etc во время обновления пакетов. Он отслеживает метаданные файлов, которые git обычно не поддерживает, но это важно для / etc, например, разрешения
/etc/shadow
.