Application: "Bacula Dir 5.2/7.4".
Задача: обеспечить избыточную надёжность хранения описаний имеющихся наборов резервных копий.
Наряду с сохранением сведений об отработавших заданиях резервного копирования в "базе данных" часть таковых записываются в сопроводительный текстовый bootstrap-файл. В BSR-файле ("bootstrap file") аккумулируется набор параметров, указывающий на месторасположение файлов резервных копий ("томов") и смещение их блоков внутри файлов "тома" - этого достаточно, чтобы извлечь срез резервной копии за желаемый период, используя утилиту "bextract".
Как правило BSR-файлы складываются где-то в файловой системе сервера резервного копирования, но я полагаю, что этого мало, и хочу сохранять их где-то ещё. Буду отправлять их почтой.
Учитывая, что политика формирования BSR-файла едина, я предпочитаю вынести соответствующие настройки в отдельный конфигурационный файл, подключаемый при необходимости:
# vi /etc/bacula/includes/bsr.conf
# Указываем месторасположение для файла резервного описания "томов" использованных при исполнении задания, с помощью которой данные могут быть восстановлены из резервной копии без наличия подключения к "Bacula Catalog"
Write Bootstrap = "/var/lib/bacula/bsr/%n.bsr"
# Отправляем BSR-файл на почту администратору по результатам каждого исполнения задания
RunScript {
RunsWhen = After; RunsOnFailure = yes; RunsOnClient = no;
Command = "/bin/bash -c '/usr/sbin/bsmtp -8 -h mx.example.net:25 -f bacula@example.net -s \"Bacula: Bootstrap of %n\" admin@example.net < /var/lib/bacula/bsr/%n.bsr'"
}
Write Bootstrap = "/var/lib/bacula/bsr/%n.bsr"
# Отправляем BSR-файл на почту администратору по результатам каждого исполнения задания
RunScript {
RunsWhen = After; RunsOnFailure = yes; RunsOnClient = no;
Command = "/bin/bash -c '/usr/sbin/bsmtp -8 -h mx.example.net:25 -f bacula@example.net -s \"Bacula: Bootstrap of %n\" admin@example.net < /var/lib/bacula/bsr/%n.bsr'"
}
В описании каждого задания резервного копирования укажем включать конфигурацию для BSR:
# vi /etc/bacula/client.d/example.net.conf
....
Job {
....
# Подключаем конфигурацию для файла резервного описания задания ".bsr"
# (это включение должно быть одним из последних в описании задания)
@/etc/bacula/includes/bsr.conf
}
Job {
....
# Подключаем конфигурацию для файла резервного описания задания ".bsr"
# (это включение должно быть одним из последних в описании задания)
@/etc/bacula/includes/bsr.conf
}
Проверяем корректность конфигурации средствами самого "Bacula" и даём команду принять таковую:
# bacula-dir -c /etc/bacula/bacula-dir.conf -t
# /etc/init.d/bacula-director reload
# /etc/init.d/bacula-director reload