В этой статье рассматривается подход при котором система резервного копирования строится по модульному принципу. Модули можно выборочно подключать и комбинировать произвольным образом.
Описываемая система Backup Parts (BP) представляет из себя набор Shell-скриптов. Принцип работы BP очень прост:
- Запустить пред-задания из директории before.d
- Создать tarball с данными
- Запустить пост-задания из директории after.d
Таким образом, система BP позволяет выполнить определенную работу как до, так и после создания резервной копии. Пред-задание, к примеру, может подготовить дамп базы данных, а пост-задание - записать его на DVD или сохранить на FTP-сервере.
Установка и настройка
Скачать BP можно отсюда. Также открыт доступ через SVN:
svn co http://opensvn.csie.org/bp/trunk bp-devНаконец, с содержимым SVN-репозитория можно ознакомиться и не загружая саму программу.
svn co http://opensvn.csie.org/bp/tags/r10 bp-1.0
Комплектация программы:
- bp.sh - главный скрипт;
- bp.conf - конфигурация программы;
- email_last_error.sh - отправка отчета об ошибке;
- add_symlink.sh - скрипт для назначения заданий;
- scripts/ - директория для модулей;
- scripts/rotate_backups.sh - модуль ротации резервных копий;
- scripts/burn_cd.sh - модуль записи данных на CD/DVD;
- before.d/ - директория для пред-заданий;
- after.d/ - директория для пост-заданий;
- log/ - директория для логов.
Следующим этапом настройки следует назначить пред- и пост-задания. Это можно сделать при помощи скрипта add_symlink.sh:
На этом этап настройки завершен. Теперь можно запустить скрипт bp.sh и проверить результат работы. Весь вывод от запускаемых программ перенаправляется в лог. После завершения работы пустые логи автоматически удаляются../add_symlink.sh
1) burn_cd.sh
2) fail.sh
3) rotate_backups.sh
Select script: 3
1) BEFORE
2) AFTER
Select script type: 2
Enter script weight [00..99]: 20
`./after.d/20_rotate_backups.sh' -> `../scripts/rotate_backups.sh'
1) burn_cd.sh
2) fail.sh
3) rotate_backups.sh
Select script:
^C
Bye.
Запуск по расписанию
Вот пример настройки Cron-а для запуска BP по расписанию:
Если bp.sh завершится с ошибкой, то email_last_error.sh отправит ее описание по адресу admin@domain.tld.PATH=/bin:/usr/bin:/path/to/bp
MAILTO=admin@domain.tld
# min(0-59) hours(0-23) day(1-31) month(1-12) dow(0-7) command
0 3 * * * bp.sh || email_last_error.sh
Ротация резервных копий
Ротацию резервных копий можно организовать с помощью модуля rotate_backups.sh. По умолчанию, будут поддерживаться последние 10 файлов. При необходимости это значение можно переопределить.
Запись на CD/DVD
Для записи резервных копий на CD/DVD диски служит модуль burn_cd.sh. В модуле используются утилиты mkisofs(1) и cdrecord(1) из пакета Cdrtools.
Нужного мне модуля нет!
Так напишите его! Создание нового модуля и подключение его к системе не представляет особых сложностей: достаточно написать программу на любом удобном для вас языке программирования, разместить ее в директории scripts/ и назначить в качестве пред- или пост-задания.
Заключение
В этой статье показано как организовать систему резервного копирования минимальными средствами. Благодаря модульному подходу систему легко расширять и поддерживать, а сами модули можно выборочно подключать и комбинировать произвольным образом. Это позволяет адаптировать систему практически к любому окружению.

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