Мне нужно напечатать уникальные URL-адреса из файла журнала доступа apache с уникальным счетчиком каждого URL-адреса, и мне нужно сделать это в определенные диапазоны дат.
у нас есть URL-адрес входа в систему, который получает параметры с помощью GET, поэтому более оптимально отсортировать файл доступа для поиска уникальных URL-адресов, подсчитать их в диапазоне дат и вставить их в базу данных вместо активной вставки каждого соединения.
журнал доступа имеет следующий формат:
11.111.11.111 - - [03/Apr/2019:11:43:11 +0300] "GET /url.php?parameter=&2nd_parameter=15&mana=587&something_else=mana HTTP/1.1" 200 5316 "something:something" "Mozilla/5.0 (Android; U; en-GB) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/29.0" 1152 [url.url.com]
Мне нужно делать это по временным интервалам, чтобы у меня было как минимум несколько временных рамок, а файлы довольно большие - дневной журнал доступа может быть> 10 ГБ. Результаты grep будут проанализированы с помощью PHP.
cat access_ssl.log | awk '{print $7}' | sort -n | uniq -c
приводит к уникальным URL и их количеству. Мне также нужно получать только результаты за определенные промежутки времени.
Я ожидаю ввода определенного временного диапазона, например: 11:00:00
, 12:00:00
- например, час, и вывод для группировки, подсчитанные URL:
20 /url.php?parameter=&2nd_parameter=15&mana=587&something_else=mana
15 /url.php?parameter=&2nd_parameter=15&mana=577&something_else=something_else