Анализ логов с агрегацией и сортировкой
Условие:
Есть лог веб-сервера access.log в формате:
Пример:
Задача:
Вывести топ-5 IP, которые сделали больше всего запросов с кодом 500.
Решение:
Условие:
Есть лог веб-сервера 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