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 ★★★
()
Ответ на: комментарий от disee

Спасибо за подсказку - ступил, конец недели.

Jalart
() автор топика

Решение (вывод 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
() автор топика
12 мая 2017 г.

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

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