Application: Bacula v.2.4/v.5.2.
Настроим тестового клиента.
Инсталлируем клиентскую часть Bacula:
# aptitude install bacula-fd
Корректируем простенький конфигурационный файл на стороне тестового клиента:
# cat /etc/bacula/bacula-fd.conf
# Описание "Директора", которому разрешено подключение к клиенту
Director {
Name = "dir0.backup.local"
Password = "strongPasswordForClient"
}
# Описание конфигурации "File Daemon"
FileDaemon {
# Произвольное уникальное имя клиента (лучше, чтобы оно совпадало с FQDN клиента)
Name = "test.domain.local"
# Прослушиваемый клиентом адрес (адреса). Указываем полный диапазон для возможности подключения откуда угодно. Указываем порт, на котором клиент принимает подключения от "Директора"
FDAddress = 0.0.0.0; FDport = 9102
WorkingDirectory = /var/lib/bacula; Pid Directory = /var/run/bacula
# Количество одновременных соединений с клиентом (одно для резервирования и одно для проверки статуса)
Maximum Concurrent Jobs = 2;
SDConnectTimeout = 20 minutes
# Указываем период посылки поддерживающих соединение пакетов. Необходимо для борьбы со слишком умными маршрутизаторами, которые закрывают соединение по истечению интервала неактивности
Heartbeat Interval = 30 sec
}
# Описание блока обработки сообщений сервиса (отправлять всё "Директору")
Messages {
Name = Standard
director = dir0.backup.local = all, !skipped, !restored
}
Director {
Name = "dir0.backup.local"
Password = "strongPasswordForClient"
}
# Описание конфигурации "File Daemon"
FileDaemon {
# Произвольное уникальное имя клиента (лучше, чтобы оно совпадало с FQDN клиента)
Name = "test.domain.local"
# Прослушиваемый клиентом адрес (адреса). Указываем полный диапазон для возможности подключения откуда угодно. Указываем порт, на котором клиент принимает подключения от "Директора"
FDAddress = 0.0.0.0; FDport = 9102
WorkingDirectory = /var/lib/bacula; Pid Directory = /var/run/bacula
# Количество одновременных соединений с клиентом (одно для резервирования и одно для проверки статуса)
Maximum Concurrent Jobs = 2;
SDConnectTimeout = 20 minutes
# Указываем период посылки поддерживающих соединение пакетов. Необходимо для борьбы со слишком умными маршрутизаторами, которые закрывают соединение по истечению интервала неактивности
Heartbeat Interval = 30 sec
}
# Описание блока обработки сообщений сервиса (отправлять всё "Директору")
Messages {
Name = Standard
director = dir0.backup.local = all, !skipped, !restored
}
Перезапускаем клиента:
# /etc/init.d/bacula-fd restart
Проверяем, слушает ли клиент соответствующий порт:
# netstat -apn | grep bacula-fd
tcp 0 0 0.0.0.0:9102 0.0.0.0:* LISTEN 2897/bacula-fd
Снова подключаемся к "Директору" с помощью консоли:
# bcondole
Connecting to Director dir0.backup.local:9101
1000 OK: dir0.backup.local
Enter a period to cancel a command.
*status client=client-test.domain.local
Connecting to Client client-test.domain.local at test.domain.local:9102
....
*
1000 OK: dir0.backup.local
Enter a period to cancel a command.
*status client=client-test.domain.local
Connecting to Client client-test.domain.local at test.domain.local:9102
....
*
Проверяем статус подключения клиентов (единственного пока клиента). Всё в норме.
Очень удобно у Bacula реализовано разделение функций сервера и клиента. Достаточно один раз установить и настроить клиента, а в дальнейшем абсолютно все работы по изменению конфигурации производятся на стороне сервера без необходимости возвращаться на удалённую сетевую машину. Вот если бы в Zabbix (система мониторинга) так сделали, а то каждый "чих" и "пых" выходящий за рамки стандартной небогатой конфигурации в ней требует пере-конфигурирования как сервера так и клиента.