пятница, 21 мая 2010 г.

Резервная копия настроек сервера

Всё написанное ниже ни в коем случае не стоит воспринимать как руководство к действию, это лишь информация к размышлению.

Для резервного копирования настроек сервера можно использовать простенький скрипт, ежедневно отправляющий на почтовый ящик резервную копию настроек сервера (для отправки используется пакет biabam). Главное достоинство таких резервных копий - их малый объём, а процесса резервного копирования - очень высокая скорость. Сам скрипт может быть, например, таким:
#!/bin/sh

DATE=`date "+%Y-%m-%d"`

dpkg --get-selections > /root/backups/dpkg.list
mysqldump -u root --password=password --all-databases > /root/backups/mysql.sql

tar -cjvf /root/backup-$DATE.tbz --files-from=- << END
/etc//root/bin/
/home/stupin/bin/
/usr/local/bin/
/var/cache/bind/
/var/spool/cron/crontabs/
/root/backups/dpkg.list
/root/backups/mysql.sql
END
rm /root/backups/dpkg.list /root/backups/mysql.sql

echo "This is a Backup of your Debian Server!!! Keep this!" |\
  biabam /root/backup-`date "+%Y-%m-%d"`.tbz \
    -s "Daily backup Debian Server Configs: $DATE" stupin@mydomain.ru
rm /root/backup-$DATE.tbz
Будьте осторожны, т.к. злоумышленник, получивший доступ к этому сообщению, фактически получает полный доступ к серверу.

Файлик dpkg.list позволяет быстро установить все необходимые пакеты (перед этим лучше сначала перенести учётные записи).
# dpkg --set-selections < dpkg.list
# apt-get dselect-upgrade
Файлик mysql.sql позволяет быстро восстановить состояние БД mysql:
$ mysql -u root --password=password < mysql.sql
Что делать с остальными файлами - я думаю вы догадаетесь сами. Можно, например, сделать rsync нужных каталогов:
$ rsync /root/backup/var/cache/bind/ /var/cache/bind/
Можно сделать rsync каталога /etc/, но тут стоит соблюдать осторожность. Если восстановление происходит на другом оборудовании, то как минимум не стоит бездумно копировать /etc/fstab и /etc/udev/. Если перенос осуществляется ещё и на другую систему, то стоит подумать также о том, можно ли безболезненно скопировать /etc/passwd и /etc/shadow.

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