Мой демон-директор размещен на машине ubuntu, а клиент - это машина с Windows 7. Обе машины находятся в одной подсети. У меня проблемы с аутентификацией между сервером и клиентом. Ошибка, которую я получаю на стороне сервера, выглядит следующим образом:
10-May 12:00 mydir-dir JobId 6395: Start Backup JobId 6395, Job=server-bkp.2013-05-10_12.00.00_13
10-May 12:00 mydir-dir JobId 6395: Using Device "RAID_Device"
10-May 12:00 mydir-dir JobId 0: Fatal error: Unable to authenticate with File daemon at "myserver.ip.address:9102". Possible causes:
Passwords or names not the same or
Maximum Concurrent Jobs exceeded on the FD or
FD networking messed up (restart daemon).
Please see http://www.bacula.org/en/rel-manual/Bacula_Freque_Asked_Questi.html#SECTION003760000000000000000 for help.
*q
root@cosmo:~# telnet my-client-hostname.domain 9102
Trying myclient.ip.address...
Connected to my-client-hostname.domain.
Escape character is '^]'.
^[^[
Connection closed by foreign host.
Мой файл bconsole.conf на клиентской машине Windows 7:
Director {
Name = mydir-dir
DIRport = 9101
address = mydir.domain
Password = "my_secret_password"
}
Мой файл bacula-fd.conf на клиенте выглядит следующим образом:
# Main Director
Director {
Name = mydir-dir
Password = "my_secret_password"
}
# File Daemon
FileDaemon {
Name = my-client-hostname-fd
FDport = 9102
WorkingDirectory = "C:\\Program Files\\Bacula\\working"
Pid Directory = "C:\\Program Files\\Bacula\\working"
Maximum Concurrent Jobs = 10
}
# Where to send messages.
Messages {
Name = Standard
director = mydir-dir = all, !skipped, !restored
}
Это то, что мой /etc/bacula/bacula-dir.conf на сервере показан ниже. Обратите внимание, что часть ненужной информации удалена.
# Main Director for backup control.
Director {
Name = mydir-dir
DIRport = 9101
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/home/bacula/bacula/working"
PidDirectory = "/var/run/bacula"
Password = "my_secret_password"
Messages = Standard
}
# Restricted Director for monitoring.
Console {
Name = mydir-mon
Password = "my_other_password"
CommandACL = status, .status
}
# Catalog within the MySQL database
Catalog {
Name = MYDIR_Catalog
DB Name = bacula
DB Address = localhost
user = "MY_USER_NAME"
password = "MY_DB_PASSWORD"
}
# Storage to use for backup
Storage {
Name = RAID_Storage
Password = "MY_SD_PASSWORD"
Address = mydirhost.domain
SDPort = 9103
Device = RAID_Device
Media Type = File
}
# Include client, job, schedule and fileset information
@/etc/bacula/clients/MY-CLIENT-HOSTNAME.conf
Наконец, ниже показан мой /etc/bacula/clients/MY-CLIENT-HOSTNAME.CONF. Опять же, некоторая ненужная информация опущена.
# Client information for my-client-hostname
Client {
Name = my-client-hostname
Password = "my_secret_password"
Address = my-client-hostname.domain
FDPort = 9102
Catalog = MYDIR_Catalog
}
* Обратите внимание, что я использовал один и тот же «my_secret_password» во всех файлах.
Я проверил брандмауэр и аутентификацию через telnet, и, похоже, он работает нормально. Я буду фантастически рад, если кто-нибудь подскажет, что я делаю не так !!!
В сообщении об ошибке говорится:
Возможные причины:
Пароли или имена не то же самое или
Превышено максимальное количество одновременных заданий на FD или
Неисправность сети FD (перезапустите демон).
Конфигурация на вашем директоре:
# Client information for my-client-hostname
Client {
Name = my-client-hostname
Password = "my_secret_password"
Address = my-client-hostname.domain
FDPort = 9102
Catalog = MYDIR_Catalog
}
Конфигурация вашего File Daemon:
....other stuff.....
# File Daemon
FileDaemon {
Name = my-client-hostname-fd
FDport = 9102
WorkingDirectory = "C:\\Program Files\\Bacula\\working"
Pid Directory = "C:\\Program Files\\Bacula\\working"
Maximum Concurrent Jobs = 10
}
....more stuff.....
Так что, похоже, если вы не сделали ошибку при редактировании того, что не соответствует вашим именам.
(Не расстраивайтесь, я тоже не увидел этого в первый раз, когда просмотрел ваш вопрос, и сам потратил часы на подобные вещи!)
Я также работаю над инструментом резервного копирования клиента сервера bacula. Я действительно понял, что если ваш файловый демон новее, чем демон директора и хранилища, возникает эта ошибка. попробуйте получить версию bacula-fd 5.2, чтобы она была совместима с SD и директором! Надеюсь, поможет!
Я почти уверен, что видел нечто подобное. Если у вас была команда, запущенная как часть задания, которое выполняется на этом хосте (например, оператор «Клиент запускается перед заданием»), если эта команда приостановлена или каким-то образом останавливается, она нарушает работу bacula, даже если вы перезапустите агент.
Если это в конечном итоге происходит, команда «перед заданием» наследует дескриптор прослушиваемого файла, на котором работает агент, и сохраняет его открытым. Если вы перезапустите bacula, Windows, похоже, никогда не позаботится о том, чтобы уже существовал процесс, привязанный к адресу прослушивания, который bacula должен прослушивать и запускать bacula.
Однако весь трафик, который вы отправляете в bacula, на самом деле получает случайная команда от старого экземпляра bacula, а не сама bacula.
Чтобы исправить это.
netstat
на хосте Windows и найдите все процессы, прослушивающие порт 9102.Другая проблема может заключаться в том, что у bacula исчерпано максимальное количество подключений, но в этом случае вы можете просто перезапустить агент, чтобы исправить это.
Немного старый вопрос, но, возможно, кто-то все еще ищет ответ. Это может быть проблема с брандмауэром Windows ... и я знаю, что вы уже сказали, что проверили брандмауэр. Я попробовал порты с telnet на моем ubuntu, и мне показалось, что он открыт, но это не сработало. После добавления правила Windows fw, разрешающего подключения к% ProgramFiles% \ Bacula \ bacula-fd.exe, директор начал аутентификацию. Так что я бы попробовал :)