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



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

要求:我想使用bash脚本来完成这项工作,最好使用常见的shell实用程序。一个例外基本上是以!开头的一行。还有许多其他日志行也不例外。

问题:我该怎么做?

这里有一个可能的解决方案:

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

然后我可以检查退出代码是124还是143(超时,不知道为什么会变化)或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

最新更新