в Администририрование

Итак, у нас есть система, которая работает и выполняет свои задачи. Более того — у нас происходит периодическое копирование всех рабочих данных, настроено оповещение и казалось бы — лучше ничего не трогать, так как всё и так работает.

Но теперь давай рассмотрим ситуацию, что у нас “что то пошло не так”. И это “что то” привело систему в негодность, да такую что проще всё уже заново поднять. Копия рабочих данных у нас имеются, но вот настройки системы — момент довольно тонкий и хлопотливый. Да, лучше всего делать образ системы целиком, но не всегда есть такая возможность.

Сейчас мы рассмотрим одно из решений для создания копии всех настроек системы из /etc, но не простым копированием и дальнейшей архивацией, а поиском измененных файлов с момента установки самой системы.

Первое, что нам потребуется — это рут. Для доступа к множеству файлов в /etc требуются его права.

Создаем директорию, где будет размещен готовый backup:

$ mkdir -p /home/system-backup

Создаем файл с указанной нами меткой о его создании — он потребуется для поиска всех измененных файлов, что “старше его”:

$ touch --date "2015-01-01" /tmp/sysBackupTimestampFile

Как получить дату установки ОС на примере CentOS подробно рассказано здесь

Создаем список измененных файлов и сохраняем его:

$ find /etc/ -type f -newer /tmp/sysBackupTimestampFile > /tmp/backupFilesList

Архивируем файлы из списка:

$ tar -cpjf /home/system-backup/backup-$(date +%y-%m-%d--%H-%M)-systemconfig.tar.bz2 -T /tmp/backupFilesList > /dev/null 2>&1

Теперь можно полученный архив сохранить, или поставить его создание в планировщик заданий, оформив в виде скрипта. Посмотреть мою версию можно по ссылке ниже, его верхнюю секцию вынесены настройки:

СкачатьGitHub

Для запуска скрипта не под рутом и без запроса пароля добавь в /etc/sudoers:
%USER_NAME_HERE% ALL=(ALL) NOPASSWD: /path/to/backup-systemcfg.shБолее того, для того чтоб он запускался без необходимости активного пользователя в системе проверь наличие в нем строки:
Defaults !requiretty