После установки и различных пользовательских конфигураций можно использовать, например. apt и некоторые shell-fu для создания diff для каждого файла в / etc /, который отличается от стандартной конфигурации? Это дало бы возможность генерировать краткую сводку о состоянии конфигурации после факта, а не полагаться на ручное ведение журнала в процессе, если кто-то захочет вспомнить, что было изменено позднее.
Вы должны взглянуть на etckeeper :
etckeeper - это набор инструментов, позволяющих / etc храниться в git, mercurial, Даркс, или БЗР хранилище. Он подключается к apt (и другим менеджерам пакетов, включая yum и pacman-g2) для автоматической фиксации изменений, внесенных в / etc во время обновления пакетов. Он отслеживает метаданные файлов, которые системы контроля версий обычно не поддерживают, но это важно для / etc, например, для разрешений / etc / shadow. Он достаточно модульный и настраиваемый, а также простой в использовании, если вы понимаете основы работы с контролем версий.
BLOCKQUOTE>
Я нахожусь в процессе разработки решения той же проблемы.
По сути, моя цель - система, позволяющая отменять и возвращать с детализацией на уровне файлов.
Начиная с вашего вопроса и работая задом наперед ...
DIFFDIR= ......
ARCDIR=./.archives # see below
function getlastarchive() {
... code to return last archived version ...
}
for FILE in /etc/*
do
ARCFILE="$(getlastarchive $FILE)"
diff $ARCDIR/$ARCFILE /etc/$FILE >$DIFFDIR/$FILE.diff
done
.archives
в любом каталоге с измененным файлом. Он создается по необходимости скриптом file-archive
. .archives
, прежде чем он будет изменен. Files: /etc/hosts
/etc/resolv.conf
Archived Versions: /etc/.archives/hosts.20121219015459
/etc/.archives/resolv.conf.20121219015459
Files: /etc/hosts
/etc/resolv.conf
Archived Versions: /etc/.archives/hosts.00
/etc/.archives/resolv.00.conf
Надеюсь, это поможет!