有没有办法结合使用pipe道或FIFO,以连续监视几个(相同格式)的日志文件,同时sorting在第一个领域,然后能够有效地做一个尾部-f连续,sorting的输出?
我可以做这样的东西: –
mkfifo / tmp / logfile
tail -F -q * .op> / tmp / logfile&
tail -f </ tmp / logfile
但我已经尝试通过sorting-k 1,但不能得到它的工作。
为什么不能这样工作?
tail -qf *.op | sort -k 1
我猜想multitail可能会为你工作,除非你所说的日志文件是巨大的。 就像是
multitail -R 5 -l "sort -k1 *.op"
会每五秒执行一次sort -k1 *.op命令,并将其很好地放在多sort -k1 *.op输出视图中。 当然,如果只有来自日志的X最后一行足够了,那么tail -n somenumber *.op | sort -k1 tail -n somenumber *.op | sort -k1会在命令部分执行。
这里的问题可能在于sorting等待stream的结束,直到到达结束才能启动。 通常sorting用于有限的一组数据,所以它等待所有的数据,然后sorting。 如果没有等待,它将不得不随着新数据的来临而诉诸于此,这并不适合unixpipe道架构。
也许你可以做的是使用tail -100l来获取每个日志的最后100行,按时间sorting – 然后切出尽可能多的行,然后按照你想要的方式sorting。 然后只是循环定期更新。