Опубликовано в

Анализ логов с агрегацией и сортировкойУсловие:Есть лог веб-сервера access.log в…

Анализ логов с агрегацией и сортировкой
Условие:
Есть лог веб-сервера access.log в формате:
IP - - [date] "METHOD URL HTTP/1.1" STATUS SIZE
Пример:
192.168.1.10 - - [01/Feb/2026:10:12:34] "GET /api/users HTTP/1.1" 200 1234
Задача:
Вывести топ-5 IP, которые сделали больше всего запросов с кодом 500.

Решение:

awk '$9 == 500 {print $1}' access.log \
| sort \
| uniq -c \
| sort -nr \
| head -5

awk '$9 == 500 {print $1}'
• • $9 — HTTP-код
• • $1 — IP-адрес
sort — обязательная подготовка для uniq
uniq -c — считаем количество повторений
sort -nr — числовая сортировка по убыванию
head -5 — топ-5


View Source