2009-03-29

Бэкап настроек в Linux

В линуксе редки случаи "вчера работало, а сегодня нет =(". Будучи настроенной, программа (заслуживающая уважения, конечно) способна работать в режиме "сегодня как вчера, а завтра как сегодня" очень и очень долго. Но что делать если настройки по той или иной причине сбились в непонятном направлении? Разумеется восстановить из бэкапа! Но, если для того чтобы продать что-нибудь ненужное, надо сначала купить что-нибудь ненужное, то для восстановления из бэкапа надо сначала его сделать. Сделать это очень просто.

Все настройки в линуксе делятся на две большие группы - системные и пользовательские. Системные настройки хранятся в директории /etc, являются общесистемными (например определяют список репозиториев с софтом, или список жестких дисков, монтируемых при загрузке, содержат настройки демонов), их редактирование разрешено только суперпользователю. Такие настройки как настройки опен офиса, музыкального проигрывателя и прочих пользовательских программ (в том числе настройки интерфейса) не требуют прав суперпользователя для изменения, и хранятся в домашней директории конкретного пользователя в виде скрытых файлов и поддиректорий ( т.е. с названиями начинающимися с точки. Например .gnome, .mozilla, .bashrc).

Из этого можно сделать вывод — все настройки можно сохранить простым копированием директории /etc/ и тех файлов и папок из домашней директории, которые называются с точки.

Теперь все просто. Создаем в своей домашней директории (/home/yourname/) директорию backup. Сохраняем туда архив, содержащий настройки пользователя:

tar cpvzf ~/backup/`date +%y.%m.%d`_home_settings.tgz ~/.[a-z,A-Z]*

Эта команда создаст сжатый архив с примерно таким названием "09.03.29_home_settings.tgz". В дальнейшем в него можно будет зайти как в обычную папку при помощи Midnight Commander, и извлечь из него нужную папку или файл.

Возможно потребуется исключить из бэкапа некие папки. Например я бэкаплю настройки файрфокса его расширением FEBE, а бэкапы вайна и антивируса мне просто не нужны. Для исключения директорий и файлов слегка видоизменяем скрипт, дописывая исключения. В моем случае:

tar cpvzf ~/backup/`date +%y.%m.%d`_home_settings.tgz --exclude='.wine' --exclude='.mozilla' --exclude='.avast' ~/.[a-z,A-Z]*


Теперь о бэкапе системных настроек. В общем-то все аналогично, но делаем через sudo (и меняем yourname )):

sudo tar cpvzf /home/yourname/backup/`date +%y.%m.%d`_etc_settings.tgz /etc/

Замечу, что архив создастся под правами суперпользователя, поэтому если мы захотим его переместить, переименовать или удалить - система нас пошлет. Поэтому сразу после создания выдадим себе права на него:

sudo chmod 666 /home/yourname/backup/`date +%y.%m.%d`_etc_settings.tgz
(дата будет отличаться ;))

Теперь архив можно переименовывать и в общем обращаться как со своим =). Для восстановления файла из него — запускаем mc с правами рута (sudo mc), заходим внутрь и копируем нужный конфиг обратно в /etc.

PS: полный бэкап всего и всея:

tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backups .

Комментариев нет:

Отправить комментарий