Материал из Wiki.X-news.org
Перейти к: навигация, поиск

FreeBSD. Резервирование данных при помощи fsbackup

После истории с rm -rf / я озаботился всетаки каждодневным бэкапом данных, сначала планировал написть свой shell-скриптик, но потом всетаки решил поискать готовое решение...

Цель Резервное копирование файлов проектов Дамп базы данных проектов (MySQL) Выгрузка дампов на удаленный FTP сервер Средства В качестве средства для резвного копирования был выбран fsbackup, в силу того, что отвечал нашим целям.

Система fsbackup была создана для обеспечения резервного копирования серверов разного масштаба на специально отведенном сервере бэкапа.

Установка cd /usr/ports/sysutils/fsbackup make install Более подробно о работе с Портами и пакетами во FreeBSD, а так же о обновлении дерева портов и установленных пакетов.

Настройка cd /usr/local/fsbackup Создаем директорию для архивов

mkdir ./archive Сделаем резервную копию и отредактируем конфигурационный файл

cp cfg_example server_backup.conf vi server_backup.conf Там все просто, да еще и на русском :) Теперь укажите используемый конфигурационный файл в create_backup.sh

config_files="server_backup.conf" Настройки для FTP

Файл server_backup.conf

# Тип хранилища
$cfg_type = "remote_ftp";

# Сервер на который будет копироваться бэкап.
$cfg_remote_host = "server.remote.ru:21";

# Логин под которым будет сохранятся бэкап.
$cfg_remote_login = "backup_login";

# Директория куда должны помещаться файлы бэкапа, директория должна присутствовать.
$cfg_remote_path = "/home/backup_login/backup";

# пароль для входа по ftp.
$cfg_remote_password = "backup_password";

Указываем директории и файлы для бэкапа

Доходим до $cfg_root_path и указываем корневую директорию, относительно которой описаны пути для помещения файлов (См. __DATA__).

$cfg_root_path = "/";

Указываем директории и файлы для бэкапа (директива __DATA__)

__DATA__

# Fsbackup
/usr/local/fsbackup
!/usr/local/fsbackup/cache
f!.core$
f!^core$
f!.o$
f!.log$ 

# BSD
/var/db/pkg
/usr/src/sys/i386/conf 

# Users and PROJECT's
/home
/root
!/home/ftp
=!.netscape/cache/
=!.mozilla/.*/Cache/
=!.mozilla/.*/NewCache/
=!.mozilla/.*/News/
f!.*.avi$
f!.*.mpeg$
f!.*.mpg$
f!.*.mp3$ 

# System configuration
/etc
/var/cron/tabs
/var/spool/cron
/usr/local/etc

MySQL бэкап

Для бэкапа MySQL надо отредактировать ./scripts/mysql_backup.sh

Указываем логин, пароль, указываем какие БД нам дампить.

А также необходимо отредактировать стартовый файл ./create_backup.sh и указать что нам нужен бэкап MySQL!

backup_mysql=1 Далее, добавляем в крон запись

crontab -e 0 4 * * * /usr/local/fsbackup/create_backup.sh| mail -s"`uname -n` backup report" root Краткая справка по крону и шпаргалка.

Секурность! По поводу шифрования бэкапа смотрите http://www.opennet.ru/dev/fsbackup/#shi

Восстановление данных Для полного восстановления данных из инкрементального бэкапа может использоваться скрипт ./scripts/fsrestore.sh, для восстановления просто отредактируйте пути внутри скрипта и запустите его.