Что такое Bacula?
Для тех кто попал на эту страницу случайно и не знает что это за летучая мышь поясню, что Bacula это набор кросплатформенных программ с открытым исходным кодом для резервного копирования данных. Эти программы позволяют администратору сети управлять процессом резервного копирования, восстанавливать данные и проверять их. Они работают с различными носителями включая ленточные (стриммеры). Набор программ построен по клиент/серверной технологи и позволяет выполнять резервное копирование данных от одиночного компьютера до тысяч разнородных компьютеров объеденённых в большую сеть. Поскольку отступление уже затянулось то спешу сообщить, что подробнее можно почитать здесь
Нетерпеливым рекомендую перейти сразу в конец страницы и посмотреть решение вопроса.
Проблема появилась уже при установке.
Установка клиента Bacula для Windows прошла в целом гладко если не считать того, что при установленной по умолчанию в инсталяторе “птичке” “run Bacula service” в логе установки осталась ошибка (в цитате она выделена жирным шрифтом):
type “C:\Program Files\Bacula\install.log”
Create folder: C:\Documents and Settings\All Users\Start Menu\Programs\Bacula
Create folder: C:\Documents and Settings\All Users\Start Menu\Programs\Bacula\Configuration
Create folder: C:\Documents and Settings\All Users\Start Menu\Programs\Bacula\Documentation
Create folder: C:\Program Files\Bacula
Create folder: C:\Program Files\Bacula\working
Output folder: C:\Program Files\Bacula
Extract: LICENSE… 100%
Output folder: C:\Program Files\Bacula\plugins
Extract: exchange-fd.dll… 100%
Output folder: C:\Program Files\Bacula
Extract: bacula-fd.exe… 100%
Extract: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\4\nsn18.tmp\bacula-fd.conf… 100%
Copy to C:\Program Files\Bacula\bacula-fd.conf
Output folder: C:\Program Files\Bacula
Extract: Readme.txt… 100%
Output folder: C:\Program Files\Bacula
Extract: mingwm10.dll… 100%
Extract: pthreadGCE.dll… 100%
Extract: zlib1.dll… 100%
Extract: ssleay32.dll… 100%
Extract: libeay32.dll… 100%
Extract: bacula.dll… 100%
Extract: C:\Program Files\Bacula\openssl.cnf… 100%
Extract: openssl.exe… 100%
Extract: bsleep.exe… 100%
Extract: bsmtp.exe… 100%
Extract: expr64.exe… 100%
Extract: snooze.exe… 100%
Create shortcut: C:\Documents and Settings\All Users\Start Menu\Programs\Bacula\Documentation\View Readme.lnk
The Bacula File Service service is starting.
The Bacula File Service service could not be started.A system error has occurred.
System error 1067 has occurred.
The process terminated unexpectedly.
Create shortcut: C:\Documents and Settings\All Users\Start Menu\Programs\Bacula\Configuration\Edit Client Configuration.lnk
Created uninstaller: C:\Program Files\Bacula\Uninstall.exe
Create shortcut: C:\Documents and Settings\All Users\Start Menu\Programs\Bacula\Uninstall Bacula.lnk
Completed
При запуске сервиса в системный журнал пишутся такие записи:
1) The Bacula File Service service was successfully sent a start control.
2) The Bacula File Service service entered the running state.
3) The Bacula File Service service terminated unexpectedly. It has done this 1 time(s).
В диалоговом окне windows при ручном запуске сервиса была такая ошибка:
“System error 1067 has occurred. The process terminated unexpectedly.”
которая интерпретируется так:
“ERROR_PROCESS_ABORTED 1067 (0x42B)”
в общем малоинформативно.
Перезагрузка не помогла.
Открытие порта tcp 9102 указанного в конфиге тоже не помогло.
Политики ограничения запуска программ и NTFS ACL также не влияли, что в общем логично для правильно написанной программы.
Каталоги существовали хотя один из них был закоментирован. Обратите внимание на то что слэши использованы парами.
FileDaemon { # this is me
Name = hummer-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = “C:\\Program Files\\Bacula\\working”
Pid Directory = “C:\\Program Files\\Bacula\\working”
# Plugin Directory = “C:\\Program Files\\Bacula\\plugins”
Maximum Concurrent Jobs = 10
}
Поиск в интернете говорил о том, что такое встречается, но внятного на сегодняшний день ответа я не нашёл. Тогда я решил поиграться с ключами exe файла bacula-fd.exe. Именно он запускается как сервис и имеет ключ /service который можно найти в менеджере сервисов.
Вот как выглядит командная строка:
“C:\Program Files\Bacula\bacula-fd.exe” /service -c “C:\Program Files\Bacula\bacula-fd.conf
Как выяснилось после “научного тыка” bacula-fd.exe имеет следующие ключи: /debug /service /run /kill /install /remove /help
Я заменил ключ /service на /debug запустил команду из cmd.exe и прямо в консоли увидел такую ошибку:
“C:\Program Files\Bacula\bacula-fd.exe” /debug -c “C:\Program Files\Bacula\bacula-fd.conf”
C:\Program Files\Bacula>
13-Aug 21:39 bacula-fd: ERROR TERMINATION at /home/kern/bacula/k/bacula/src/lib/lex.c:642
Config error: Cannot open included config file monitor_name@: No such file or directory: line 35, col 24 of file C:\Program Files\Bacula\bacula-fd.conf
Name = @monitor_name@
А это уже что-то. :)
Решение
А всё оказалось очень просто. Нужно в файле конфигурации закоментирвать одну секцию.
Данная секция презназначена для системного монитора и должна настраиваться вручную.
Поэтому если вы не используете системный монитор то можете её закоментировать.
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
#Director {
# Name = @monitor_name@
# Password = “@monitor_password@”
# Monitor = yes
#}
Вот и всё. После этого сервис стартует нормально.