Как я могу использовать grep, чтобы найти наиболее часто повторяющиеся ошибки в моем файле журнала?
У меня есть приложение PHP, которое генерирует большое количество предупреждений и уведомлений в файле журнала..
Я чиню их по одному.
Я хотел бы иметь возможность исправить наиболее часто встречающееся в первую очередь, чтобы максимизировать степень влияния моих изменений на размер файла журнала.
Как я могу использовать grep/sed/regex и т. Д., Чтобы выяснить, какие уведомления являются наиболее частыми?
Я не могу сравнить всю строку, так как отметка времени находится в начале, но, возможно, распечатка / группировка / сортировка " on line... "?
2 ответа
Решение
Как насчет этого?
grep 'on line' /var/log/httpd/error_log | cut -d' ' -f6- | sort | uniq -c | sort -nr
Т.е.
- Получить правильные строки из файла журнала
- Отрубить дату с фронта
- Сортировать их
- Агрегировать и считать дубликаты
- Сортировать по количеству дубликатов
Я думаю, что это более кратко, так что вы действительно можете избежать "вырезать".
grep -o 'on line [[:digit:]]*' /var/log/nginx/error.log | sort | uniq -c | sort -nr