Дублирование входного потока Unix для нескольких клиентов TCP (с помощью socat) - PullRequest
4 голосов
/ 26 января 2012

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

Ответы [ 2 ]

3 голосов
/ 06 июля 2012

Я думаю, что только что выполнил это, особенно дублирующую часть, с помощью Некоторые полезные команды socat .

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

Это имело эффект чередования вывода между несколькими подключенными клиентами, что также задокументировано на вышеуказанном сайте .

1 голос
/ 27 января 2012

syslogd имеет возможность перераспределения журналов через udp, см. Справочную страницу для syslogd, т.е.

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

Я считаю, что syslog-ng также поддерживает сокеты tcp для перераспределения журналов и udp

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

Я полагаю, что вам не нужен хак с сокатом?

...