LINUX.ORG.RU

Как ограничить вывод результатов анализа логов?

 , ,


1

2

Для анализа активности IP-адресов на сайте в консоли использую следующую команду:

cat /var/logs/sitename.access.log | grep '13:55' | awk '{print $1}' | sort -k 1,1M -k 2n | uniq -c | sort -nr

Но выводятся все отсортированные по убыванию строки. А нужно вывести первые 10 строк результатов сортировки и остановиться. head или tail не подходят, т.к. нужно пропарсить весь файл лога.

Конечно, можно все загнать в скрипт (сохранять во временный файл и применять к нему head/tail), но нужна оперативность работы прямо в консоли, чтобы подставляя значения, получать результат сразу, без лишних этапов редактирования скрипта и лишнего мусора.

Извините, может не правильно понял ТЗ, а что мешает после сорта вставить head/tail ?

disee ★★★ ()

Решение (вывод 5 лидеров запросов по ip-адресам) cat /var/logs/sitename.access.log | grep '13:55' | awk '{print $1}' | sort -k 1,1M -k 2n | uniq -c | sort -nr | head -n5

Итог: 422 118.13.24.13 129 91.78.9.11 112 207.13.14.19 81 205.13.24.2 73 177.166.20.26

Jalart ()

Если nginx, посмотри в сторону ngxtop.

joy4eg ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.