Как я могу использовать grep, чтобы найти наиболее часто повторяющиеся ошибки в моем файле журнала?

У меня есть приложение PHP, которое генерирует большое количество предупреждений и уведомлений в файле журнала..

Я чиню их по одному.

Я хотел бы иметь возможность исправить наиболее часто встречающееся в первую очередь, чтобы максимизировать степень влияния моих изменений на размер файла журнала.

Как я могу использовать grep/sed/regex и т. Д., Чтобы выяснить, какие уведомления являются наиболее частыми?

Я не могу сравнить всю строку, так как отметка времени находится в начале, но, возможно, распечатка / группировка / сортировка " on line... "?

2 ответа

Решение

Как насчет этого?

grep 'on line' /var/log/httpd/error_log | cut -d' ' -f6- | sort | uniq -c | sort -nr

Т.е.

  1. Получить правильные строки из файла журнала
  2. Отрубить дату с фронта
  3. Сортировать их
  4. Агрегировать и считать дубликаты
  5. Сортировать по количеству дубликатов

Я думаю, что это более кратко, так что вы действительно можете избежать "вырезать".

  grep -o 'on line [[:digit:]]*' /var/log/nginx/error.log | sort | uniq -c | sort -nr
Другие вопросы по тегам