通过网络以近乎实时的方式复制不断增长的日志文件

通过网络以近乎实时的方式复制不断增长的日志文件

我有一台服务器,其中有一堆进程在运行时写入日志文件。我需要使客户端主机能够以近乎实时的方式获取服务器端日志文件的副本。有没有比简单地将 tail 与 netcat 结合起来更好的方法?

我正在考虑在服务器端使用 tail 和 netcat 通过单个连接传输多个日志文件:

tail -F *.log | nc -lk -p 31377

虽然客户端会将日志解复用并将其写入文件:

nc serverhost 31377 | demultiplexer

其中解复用器只是围绕 sed 构建,从服务器端通过 tail 插入的分隔符计算目标文件名:

sed -e 's/==> \(.*\) <==/\1/'

答案1

尝试

 tail -f /path/to/logfile.log | xargs -l logger -p local8.info
  • xargs -l将逐行阅读。
  • 不过,您必须配置 syslog.conf 才能进行广播。 (将local8和替换info为适当的值)

相关内容