如何检查是否已记录异常30秒?

时间:2015-03-27 09:46:07

标签: bash shell

背景:我想断言没有异常写入日志30秒。基本上它是一个冒烟测试,看看我的应用程序是否已经出现,我们没有引入任何严重的错误。

要求:我想使用bash脚本执行此操作,最好使用常见的shell实用程序。异常基本上是以!开头的单行。编写的许多其他日志行也不例外。

问题:我该怎么做?

2 个答案:

答案 0 :(得分:0)

这是一个可能的解决方案:

timeout 30 tail -F my.log -n 0|grep --line-buffered '^!'|head -n 1

。然后我可以检查退出代码是124还是143(超时,不知道它为什么变化)或0(找到的行)。到目前为止,这是我最好的选择。但是,解决方案似乎在异常时很快退出。我很乐意听到其他解决方案!

答案 1 :(得分:0)

假设只有异常事件的程序才会更新日志文件。 您可以使用以下命令:

stat log_file_name

你会得到类似于下面的输出。您可以在30秒左右后运行stat,如果您没有看到时间戳的任何更改,那么比较当前和之前stat的结果,然后文件未被修改或以其他方式。

Access: 2015-03-27 15:22:17.000000000 +0530
Modify: 2015-03-27 15:22:16.000000000 +0530
Change: 2015-03-27 15:22:16.000000000 +0530