web-dev-qa-db-ja.com

xinetdを介して2つの異なるポートでrsyncをリッスンするにはどうすればよいですか?

異なるポートでrsyncを介してファイルを受信する複数のサーバーがあります。それらを同じ物理サーバーにマージし、クライアントがファイルを現在と同じポート(つまり、異なる代替ポート)に転送し続けるようにしたいのですが。

通常は、それぞれに対して/usr/bin/rsync --daemon --port=xを実行しますが、現在は「デフォルト」のrsyncサーバーであるため、centos6のxinetdを介して動作させようとしています。 /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はmanrsync.dやGoogle検索のどこにも表示されません。何が得られますか?

2
Jason Powers

使用する追加のポートごとに、追加の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
}
1
mgorven