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