3

我正在尝试合并来自多个主机的多个日志文件。我正在socat -u EXEC:'follow_log_cmd' UNIX-SENDTO:/tmp/socket为我想要关注的每个日志做一个。

在我正在做的日志收集机器上socat -u UNIX-RECV:/tmp/socket -

我的问题是日志条目有时会重叠,因为 socat 不是一次写一行,而是一次写一个缓冲区。

有没有办法让它一次写一行?

4

1 回答 1

3

尝试使用伪终端使 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

于 2011-06-14T15:37:33.640 回答