我已经在两个节点上安装了 csync2,配置如下:
nossl * *;
group cluster
{
host node1;
host (node2); # Slave host
key /etc/csync2/csync2.key;
include /home;
exclude *.log;
auto younger;
}
我验证了该服务正在通过 xinetd 进行监听:
# netstat -vatn | grep 30865
tcp 0 0 :::30865 :::* LISTEN
但是,当我运行同步命令时出现此错误:
# csync2 -xv
Connecting to host node2 (PLAIN) ...
Connect to 10.122.71.140:30865 (node2).
Config command failed.
ERROR: Connection to remote host `node2' failed.
Host stays in dirty state. Try again later...
Connection closed.
Finished with 2 errors.
我认为该端口可能被本地防火墙阻止了,所以我关闭了两台机器上的 iptables。我还通过端口 30865 在一台服务器上通过 telnet 连接到另一台服务器。
有人知道为什么会发生这种情况吗?
答案1
检查 csync 是否由 xinet 启动:chkconfig --lits csync2
如果已关闭则添加 chkconfig csync2 on
并重新启动 xinetd
服务 xinetd 重新启动
答案2
您的 csync 数据库配置可能不正确。删除数据库并仔细检查您的配置。
rm /var/lib/csync2/*
答案3
我在谷歌上搜索了同样的错误后来到了这里。为了帮助那些在我之后的人:
发生的事情是,我的实际主机名不是 node1 也不是 node2。在这种情况下,csync2 需要使用该-N hostname
选项启动。在远程主机上运行它时,-N hostname
我的 xinetd 配置文件如下所示:
# description: csync2
service csync2
{
flags = REUSE
socket_type = stream
wait = no
user = root
group = root
server = /usr/sbin/csync2
server_args = -i -l -N {hostname}
disable = no
}