如何“拖尾”modsecurity日志文件,直到某个时间戳?

时间:2016-03-16 22:28:20

标签: regex grep tail mod-security mod-security2

我有一个modsecurity日志文件,我希望在某个时间戳之前获取最后的事件。 简要介绍modsecurity日志文件的组装方式: 例如,1个事件呈现如下:

--8b014015-A--
[16/Mar/2016:20:13:02 +0100]
...omitted... 
--8b014015-B--
...omitted... 
--8b014015-F--
...omitted... 
--8b014015-H--
...omitted... 
--8b014015-Z--

可在此处找到完整示例http://pastebin.com/M1iqnY6L

我想把尾巴和grep结合起来。

  1. grep找到时间戳的行(让我们称这行 timestampLine
  2. tailLines =(文件中的总行数) - ( timestampLine + 1)
    // + 1,因为请求的第一行包含--id-A--,第二行包含时间戳
  3. tail -n $ tailLines logfile.log
  4. 有更好的方法吗?如果没有,我如何grep这个时间戳并从步骤1获取行号?

1 个答案:

答案 0 :(得分:1)

awk '{print};/\[16\/Mar\/2016:20:13:02/ {exit}' logfile