使socat逐行写入TCP或UNIX套接字以进行日志收集

问题描述

|| 我正在尝试合并来自多个主机的多个日志文件。我要为每个要遵循的日志记录ѭ0。 在日志收集器上,我正在做
socat -u UNIX-RECV:/tmp/socket -
我的问题是日志条目有时会重叠,因为socat一次不写一行,而是一次写一个缓冲区。 有什么办法可以使其一次写一行?     

解决方法

        尝试使用伪终端来缓冲socat的写行:
- socat -u EXEC:\'follow_log_cmd\' UNIX-SENDTO:/tmp/socket
+ socat -u EXEC:\'follow_log_cmd\',pty,ctty UNIX-SENDTO:/tmp/socket
另请参阅:https://stackoverflow.com/questions/1000674/turn-off-buffering-in-pipe