![如何让 rsync 通过 xinetd 监听两个不同的端口?](https://linux22.com/image/589446/%E5%A6%82%E4%BD%95%E8%AE%A9%20rsync%20%E9%80%9A%E8%BF%87%20xinetd%20%E7%9B%91%E5%90%AC%E4%B8%A4%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我有多台服务器通过 rsync 在不同端口接收文件。我想将它们合并到同一物理服务器中,并让客户端继续将其文件定向到它们现在使用的同一端口(即不同的备用端口)。
通常情况下,我只需/usr/bin/rsync --daemon --port=x
为每个服务运行一次,但我试图通过 centos 6 中的 xinetd 使其工作,因为这是现在的“默认”rsync 服务器。添加端口/etc/services
没有起作用(应该在 inetd 下,但可能不是 xinetd?)。如果我手动运行守护进程并让 xinetd 运行一个,它就会运行(这样我就不会被阻止完成它),但我仍然希望它们都由 xinetd 运行。我的问题是这能做到吗?
另外,在 man rsync 中:
--port=PORT
This specifies an alternate TCP port number for the daemon to listen on rather than the default of 873. See also the lqportrq global option in the rsyncd.conf manpage.
lqportrq 没有出现在 man rsync.d 或 google 搜索中的任何地方。什么原因?
答案1
您需要为要使用的每个附加端口添加额外的 xinetd 配置。每个端口都需要一个唯一的服务名称/etc/services
,例如:
echo "rsync00 900/tcp" >> /etc/services
然后在/etc/xinet.d/rsync00
:
service rsync00
{
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon --config /etc/rsync00.conf
log_on_failure += USERID
}