Назад | Перейти на главную страницу

Как заставить rsync прослушивать два разных порта через xinetd?

У меня есть несколько серверов, которые получают файлы через rsync на разных портах. Я хотел бы объединить их на одном физическом сервере и позволить клиентам продолжать направлять свои файлы на тот же порт, который они делают сейчас (то есть на разные альтернативные порты).

Обычно я просто бегал /usr/bin/rsync --daemon --port=x для каждого из них, но я пытаюсь заставить его работать через xinetd в centos 6, поскольку сейчас это сервер 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. что дает?

Вам необходимо добавить дополнительную конфигурацию 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
}