2016-03-16 13 views
0

У меня есть файл журнала modsecurity, где я хочу получить последние события до определенной отметки времени. Краткого введения в том, как ModSecurity лога собраны: , например, 1 событие представлено как:Как «хвост» файла журнала modsecurity до определенной отметки времени?

--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. хвост -n $ tailLines logfile.log

Есть ли лучший способ? Если нет, как мне grep эта метка времени и получить номер строки с шага 1?

ответ

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