如何 "tail" modsecurity 日志文件直到某个时间戳?
How to "tail" the modsecurity logfile until a certain timestamp?
我有一个 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
我正在考虑将 tail 和 grep 结合起来。
- grep 查找时间戳行(我们称此行为 timestampLine)
- tailLines =(文件中的总行数)- (timestampLine + 1)
//+ 1 因为请求的第一行是 --id-A--
,第二行是时间戳
- tail -n $tailLines logfile.log
有没有更好的方法?如果没有,我如何 grep 这个时间戳并从第 1 步中获取行号?
awk '{print};/\[16\/Mar\/2016:20:13:02/ {exit}' logfile
我有一个 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
我正在考虑将 tail 和 grep 结合起来。
- grep 查找时间戳行(我们称此行为 timestampLine)
- tailLines =(文件中的总行数)- (timestampLine + 1)
//+ 1 因为请求的第一行是--id-A--
,第二行是时间戳 - tail -n $tailLines logfile.log
有没有更好的方法?如果没有,我如何 grep 这个时间戳并从第 1 步中获取行号?
awk '{print};/\[16\/Mar\/2016:20:13:02/ {exit}' logfile