一行命令用于从日志中获取数据

时间:2016-01-15 07:04:17

标签: bash shell unix

我有apache日志,每分钟更新一次这样的

Apache.log

00:00:01 up 137
00:01:01 up 132
00:02:01 up 137
00:03:01 up 134
00:04:01 up 150

我想要一个行命令或一个小的Unix脚本,只要最后一列值超过140就会回显消息,就像在最后一行一样,脚本仍然继续运行。

所以简而言之,我希望脚本/命令每分钟监视一次这个日志,并在最后一列值超过140时回显一条消息。

3 个答案:

答案 0 :(得分:3)

tail -f log.file | awk '$NF > 140 { print }'

持续监控文件;如果最后一列中的行数超过140,请将其打印出来。

无论如何,这将适用于一些更简单的用途。有些问题可能会使问题更严重。如果将awk的输出发送到文件(或终端以外的任何其他内容),则可能无法及时写入输出。

答案 1 :(得分:0)

您也可以像这样使用perl。

$ tailf Apache.log | perl -anle 'if($F[2] > 140){print}'
00:04:01 up 150

或者您也可以使用elasticsearch并根据需要处理输入数据。

答案 2 :(得分:0)

如果你想定期监视它,你可以在终端中使用watch命令或在conky应用程序中添加一个进程以在桌面上显示