将输入unix流复制到多个TCP客户端(使用socat)

时间:2012-01-26 19:43:12

标签: sockets socat

我有一个syslog服务器,它写入unix流/tmp/syslog.socket。 我需要将此流复制到多个TCP客户端。有没有办法用socat实现这个目标?

2 个答案:

答案 0 :(得分:3)

我认为我在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

答案 1 :(得分:1)

syslogd有一个通过udp重新分发日志的工具,请参阅syslogd的手册页,即

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

我相信syslog-ng还支持用于日志redistrubution的tcp套接字以及udp

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

我猜你不需要和socat一起破解?