По мотивам Автоматическая проверка бекапов mysql, ldap можно пойти чуть дальше и начать автоматически проверять бекапы бакулы.
Файл, который необходимо "скормить" bconsole для выполнения бакулой необходимых команд:
cat /root/scripts/restore_check.bacula restore client=host1 where=/bacula/bacula-restores restoreclient=bacula-host select current file=/etc/asterisk/extensions.conf done
Некоторые пояснения касательно файла restore_check.bacula:
http://www.bacula.org/5.0.x-manuals/en/console/console/Bacula_Console.html
http://www.bacula.org/5.1.x-manuals/en/main/main/Restore_Command.html
client=host1 - данные с какого хоста будем восстанавливать
restoreclient=bacula-host - на какой хост, для простоты проще всего на саму бакулу-сервер
where=/bacula/bacula-restores - файловое место на restoreclient куда разворачиваем бекап
current - automatically select the most current set of backups for the specified client.
file - какой файл
После done обязательно нужен перенос строки (т.е. кол-во строк в restore_check.bacula - 2)
В итоге восстанавливаем файл из самого последнего бекапа с хоста host1 на хост bacula-host в /bacula/bacula-restores
Сам скрипт:
cat /root/scripts/restore_check.sh
#!/bin/bash
client[0]="host1"
client[1]="host2"
client[2]="host3"
client[3]="host4"
client[4]="host5"
client[5]="host6"
email="unix196\@gmail.com"
number=`shuf -i 0-5 -n 1`
old_client=`cat /root/scripts/restore_check.bacula | grep -v "^$" | awk '{print $2 }' | awk -F = '{ print $2 }'`
new_client="${client[${number}]}"
sed s/$old_client/$new_client/ /root/scripts/restore_check.bacula -i /root/scripts/restore_check.bacula
bconsole < /root/scripts/restore_check.bacula >> /root/scripts/tmp.log
sleep 20
echo -e "\n\n Check restored file on server bacula: " >> /root/scripts/tmp.log
tree /bacula/bacula-restores/ >> /root/scripts/tmp.log
cat /root/scripts/tmp.log | mail -s "Check restore client $new_client" $email
rm /root/scripts/tmp.log
rm -rf /bacula/bacula-restores/*
Некоторые пояснения касательно скрипта:
- в массиве client указываем хосты, которые будем разворачивать (можно указать больше-меньше, не важно, главное периодически проверять бекапы разных клиентов)
- генерируем случайное число, это число используем потом как ключ массива
- редактируем через sed файл restore_check.bacula, указывая новый клиент после строки "client="
- отравляем на вход bconsole отредактированный файл restore_check.bacula
Скрипт в крон, периодически получаем сообщения на почту и радуемся, что бекапы бакулы нормально разворачиваются))