将标准和日志文件合并到标准输出

我正在寻找一个命令或bash脚本,可以执行以下操作:

超合成图像

那就是:我想要一个“超级合并器”将stream中的标准与连续写入日志文件(本例中为var / log / messages)的内容合并。 结果应该写出来标准化。

原因是扫描某些错误消息,这些消息都可以写入日志文件和标准输出。

例如:

my_strange_program /var/log/messages | supermerge /var/log/messages | my_log_scanner 
  • my_strange_program可以将错误发送到标准输出和日志文件。
  • supermerge – 我正在寻找的脚本
  • my_log_scanner一个扫描错误信息的程序(我已经知道了)

注意:日志文件可以旋转:messages,messages.1,messages.2等。所以不可能只是tail文件,因为它可以被重命名。

尝试这个:

 my_strange_program /var/log/messages > /tmp/tmpfile | tail -F /var/log/messages /tmp/tmpfile | my_log_scanner 

有一个叫做multitee的工具。 这听起来像你正在寻找的东西。 我试图找出它是如何工作的,但没有得到任何工作结果

另一个想法是使用multitail,如果它足以让屏幕上的合并

 multitail -f /var/log/syslog -L "ping 4.2.2.1"