如何对-fa文件(或类似文件)尾部指定的时间间隔?

2 unix logging tail intervals

我正在为我们的系统添加一些nagios警报-其中一些警报将监视某些事件触及nginx / apache日志的速度(或从这些日志中解析值。)到目前为止,解决问题的方法是一个简单的shell脚本tail-将日志记录25秒左右到一个临时文件,终止该进程,然后在临时文件上运行awk等。目的是在25秒内获取日志“样本”,然后进行分析。

这显然不理想,这是由于这些临时文件导致磁盘IO的增加-我真正想要的是“增强的” tail -f,它可以在一定的秒数后干净地终止管道。即:

tail -f --interval'5秒'| grep“ / serve”

会将日志拖尾5秒钟,并向我显示所有具有“ / serve”的行。

我以为我可以快速编写一个ruby脚本来完成此操作,但是我想确保没有更统一的方法来完成此操作。从较高的层次上讲,有没有更好的方法可以对最近N秒内的日志进行采样(并且不,我宁愿不解析时间戳等)。

小智 5

找到了解决方案。“ apt-get安装超时” :)

编辑:实际上,这杀死了尾巴,不会导致它优雅地退出,因此我们丢失了整个管道。我要工作的是:

超时-15 5 tail -f /mnt/log/nginx/nginx-access.log | grep'/ javascripts'| wc -l

告诉我最近5秒钟内投放了多少个javascript文件,等等。