如何快速截取某段时间内的日志

默北 Linux429,36612字数 279阅读0分55秒阅读模式

在排除故障时,需要分析发生故障的原因,避免再次出现同样的问题,需要对日志进行分析,截取故障前后时间段的日志。通常用正则表达式来获取某段时间的内的日志,比较繁琐。可以通过awk方便简捷的实现。

我这里以截取nginx访问日志为例:文章源自运维生存时间-https://www.ttlsa.com/linux/how-to-quickly-intercept-logs-over-time/

查看21/Jul/2014:14:37:50到21/Jul/2014:14:38:00时间段内bbs.ttlsa.com的访问日志。文章源自运维生存时间-https://www.ttlsa.com/linux/how-to-quickly-intercept-logs-over-time/

# cat bbs.ttlsa.com.access.log | awk '$4 >="[21/Jul/2014:14:37:50" && $4 <="[21/Jul/2014:14:38:00"'

awk文章源自运维生存时间-https://www.ttlsa.com/linux/how-to-quickly-intercept-logs-over-time/ 文章源自运维生存时间-https://www.ttlsa.com/linux/how-to-quickly-intercept-logs-over-time/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 09/08/2014 01:00:55
  • 转载请务必保留本文链接:https://www.ttlsa.com/linux/how-to-quickly-intercept-logs-over-time/
评论  4  访客  3
    • 匿名
      匿名 9

      如果头尾的时间是模糊的,比如只想知道下午1点到3点之间的命令应该如何修改?

      • Aceslup
        Aceslup 9

        这个比sed截得更全。

        • 草民
          草民 9

          请问下用变量如何处理,awk -v a=$ptime -v b=$ntime ‘{$4 >="[a" && $4 <="[b"}’ access.log,这样有问题,打印不出来

        评论已关闭!