Bacula проблема запуска под Winows

Что такое 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
#}

Вот и всё. После этого сервис стартует нормально.

Leave a Reply