如何用Shell截取nginx最近10分钟的日志

 我来答
匿名用户
2015-12-19
展开全部
凭感觉,这个问题不太适合用shell脚本,perl之类的脚本做这个工作会更高效一些,无论是开发效率还是运行效率。
用shell的话,tail命令是不合适的,根本不知道从哪行开始截,如果还要计算的话,那就把问题复杂化了。用tac命令就是了,tac logfile | {filter logic} | tac,假如日志文件是下面的格式:

192.168.0.1 - - [20/Jun/2013:17:41:48 +0800] "GET / HTTP/1.1" ...那么可以执行下面的命令:

tac log | awk 'BEGIN{ "date -d \"-10 minute\" +\"%H:%M:%S\"" | getline min10ago } { if (substr($4, 14) > min10ago) print else exit }' | tac这组命令没有考虑日期,只比较时间部分。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式