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

Sockets 将输入unix流复制到多个TCP客户端(使用socat),sockets,socat,Sockets,Socat,我有一个syslog服务器,它可以写入unix流/tmp/syslog.socket。 我需要将此流复制到多个TCP客户端。是否有一种使用socat实现这一点的方法?syslogd具有通过udp重新分发日志的功能,请参阅syslogd的手册页,即 我相信syslog ng还支持用于日志重新分发的tcp套接字以及udp 我想你不需要对socat进行黑客攻击吧?我想我是在socat的帮助下完成的,尤其是复制部分 fork在左侧很重要,pty在右侧很重要 不起作用的是netcat风格: tail

我有一个syslog服务器,它可以写入unix流
/tmp/syslog.socket

我需要将此流复制到多个TCP客户端。是否有一种使用socat实现这一点的方法?

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

我相信syslog ng还支持用于日志重新分发的tcp套接字以及udp


我想你不需要对socat进行黑客攻击吧?

我想我是在socat的帮助下完成的,尤其是复制部分

fork
在左侧很重要,
pty
在右侧很重要

不起作用的是netcat风格:

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

它具有在多个连接的客户端之间交替输出的效果,这也有文档记录。

但是syslog通常是
udp
?是的。对于我的设置,它使用UDP从其他机器接收数据,并将它们写入unix流套接字。@CalinDon我建议的答案是否适合您接受?据我所知,syslog只能写入目标并从目标读取(只能是链接的一端);它无法侦听连接然后写入该连接。为什么
pty
很重要?当我不考虑它时,替换问题停止,所有数据都被发送到所有客户机。
tail -f ~/.tail-error-logs/* | socat STDIO TCP-LISTEN:4444,fork,reuseaddr