2012-01-26 2 views
4

У меня есть сервер syslog, который пишет в поток unix /tmp/syslog.socket. Мне нужно дублировать этот поток для нескольких клиентов TCP. Есть ли способ добиться этого с помощью socat?Дублировать входной поток unix нескольким клиентам TCP (с помощью socat)

+0

Но syslog обычно 'udp'? –

+0

Да. Для моей настройки он получает данные от других машин, использующих UDP, и записывает их в сокет потока unix. –

+0

@ CalinDon делает мой предложенный ответ для вас? – lkraav

ответ

1

Syslogd имеет средство для перераспределения журналов с помощью УДП, обратитесь к странице для SyslogD, т.е.

http://linux.about.com/od/commands/l/blcmdl8_syslogd.htm

Я считаю, что Syslog-нг также поддерживает TCP сокетов для журнала redistrubution, а также УДП

http://www.syslog.org/syslog-ng/v2/

Я предположил бы, что вам не нужно рубить с SOCAT?

+0

Насколько я знаю, syslog может записывать только в пункт назначения и читать из адресата (может быть только один конец ссылки); он не может прослушивать соединение, а затем записывать в это соединение. –

2

Я думаю, что я только что достиг этого, особенно дублирующей части, с помощью Some Helpful socat Commands.

socat TCP-LISTEN:4444,reuseaddr,fork SYSTEM:"tail -f ~/.tail-error-logs/*",pty 

fork важно на левой стороне, pty важно на правой стороне.

Что не получилось, был Netcat стиль:

tail -f ~/.tail-error-logs/* | socat STDIO TCP-LISTEN:4444,fork,reuseaddr 

Это имело эффект выходного переменного между несколькими подключенных клиентов, которые также документально on above website.

+0

Почему '' pty' важно? Когда я оставлю это, проблема с чередованием прекращается, и все данные отправляются всем клиентам. – Thor

Смежные вопросы