По мотивам Автоматическая проверка бекапов 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
Скрипт в крон, периодически получаем сообщения на почту и радуемся, что бекапы бакулы нормально разворачиваются))