我正在尝试合并来自多个主机的多个日志文件。我正在socat -u EXEC:'follow_log_cmd' UNIX-SENDTO:/tmp/socket
为我想要关注的每个日志做一个。
在我正在做的日志收集机器上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