背景:我想断言在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