背景:我想断言没有异常写入日志30秒。基本上它是一个冒烟测试,看看我的应用程序是否已经出现,我们没有引入任何严重的错误。
要求:我想使用bash脚本执行此操作,最好使用常见的shell实用程序。异常基本上是以!
开头的单行。编写的许多其他日志行也不例外。
问题:我该怎么做?
答案 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