Я использую учетную запись cPanel и имею Журнал доступа Apache 2.4 , в котором хранятся такие журналы, как:
66.249.93.30 - - [04/May/2018:21:26:39 +0200] "GET / HTTP/1.1" 302 207 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Page Speed Insights) Chrome/41.0.2272.118 Safari/537.36"
66.249.93.30 - - [05/May/2018:10:26:39 +0200] "GET / HTTP/1.1" 302 207 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Page Speed Insights) Chrome/41.0.2272.118 Safari/537.36"
Дата указана в формате даты "+% d /% B /% Y:% k:% M:% S"
Используя скрипт bash, я хотел бы извлечь только строки, которые были зарегистрированы в последний час , например:
Полный файл журнала:
66.249.93.30 - - [04/May/2018:21:26:39 +0200] First Line
66.249.93.30 - - [05/May/2018:11:00:21 +0200] Second Line
66.249.93.30 - - [05/May/2018:11:15:39 +0200] Third Line
66.249.93.30 - - [05/May/2018:12:00:11 +0200] Fourth Line
Текущее время: 05 / май / 2018: 12: 01 : 06
Журналы с: 5 мая с интервалом времени 11: 01 - 12: 01
Отфильтрованный вывод:
66.249.93.30 - - [05/May/2018:11:15:39 +0200] Third Line
66.249.93.30 - - [05/May/2018:12:00:11 +0200] Fourth Line
Я пробовал использовать awk и несколько других предложений, но я не могу заставить его работать, любая помощь будет оценена!