Bacula director daemon 无法验证 Windows 7 客户端

Bacula director daemon 无法验证 Windows 7 客户端

我的 director 守护进程托管在一台 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.  

Windows 7 客户端计算机上的我的 bconsole.conf 文件:

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 进行的身份验证,似乎运行正常。如果有人能告诉我我做错了什么,我会非常高兴的!!!

答案1

错误信息显示:

可能的原因:
密码或名称不一样或
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
}

文件守护进程上的配置:

....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.....

因此,除非您错误地删除了某些内容,否则您的名字似乎不匹配。
(不要难过,我第一次浏览您的问题时也没有发现这一点,而且我自己也曾在类似的事情上浪费了几个小时!)

答案2

这个问题有点老了,但可能有人还在寻找答案。可能是 Windows 防火墙的问题……我知道您已经说过您检查了防火墙。我尝试在我的 ubuntu 上使用 telnet 端口,它似乎是打开的,但没有用。在添加允许连接到 %ProgramFiles%\Bacula\bacula-fd.exe 的 Windows FW 规则后,Director 开始进行身份验证。所以我会试一试 :)

答案3

我很确定我见过类似的东西。如果您将命令作为在该主机上运行的作业的一部分运行(例如“客户端在作业之前运行”语句),如果该命令已暂停或以某种方式停滞,即使您重新启动代理,它也会破坏 bacula。

如果最终发生这种情况,则“before job”命令将继承代理运行的监听文件描述符并使其保持打开状态。如果您重新启动 bacula,Windows 似乎根本不关心是否已经有一个进程绑定到 bacula 应该监听的监听地址,并让 bacula 启动。

然而,您发送到 bacula 的所有流量实际上都是由来自 bacula 旧实例的杂散命令接收的,而不是 bacula 本身。

为了修复这个问题。

  • 停止 Windows 机器上的 bacula 代理。
  • 在 Windows 主机上运行netstat并查找监听端口 9102 的任何进程。
  • 终止这些进程。
  • 启动bacula。

另一个问题可能是 bacula 已经用完了最大连接数,但在这种情况下您只需重新启动代理即可解决该问题。

答案4

我也在研究 bacula 服务器客户端备份工具。我确实意识到,如果您的文件守护进程比控制器和存储守护进程更新,则会抛出该错误。尝试获取 bacula-fd 5.2 版本,使其与 sd 和控制器兼容!希望它有所帮助!

相关内容