Я хочу получить количество уникальных записей в журналах ошибок Apache на

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

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

Я знаю о Perl/Python/ и т. Д., Но я бы предпочел использовать встроенные инструменты, такие как cut/find/grep/sed, так далее.

Я могу получить простой список записей, используя sed, Ниже приведен список уникальных сообщений об ошибках:

$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u
Apache configured -- resuming normal operations
client denied by server configuration
Digest
File does not exist
request failed

Это работает для подсчета количества вхождений. Это просто не так полезно, так как не показывает, к чему относится число:

$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u | xargs -I{} grep -oc {} error.sml.log
1
3886
2
6091
20

Я хотел бы, чтобы вывод выглядел больше так:

1    Apache configured -- resuming normal operations
3886 client denied by server configuration
2    Digest
6091 File does not exist
20   request failed

1 ответ

Решение
sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | сортировать | uniq -c
      1  Apache настроен - возобновление нормальной работы
   Клиент 3886 отклонен конфигурацией сервера
      2 Дайджест
   6091 Файл не существует
     20 запрос не выполнен

Существует инструмент, который делает именно этот уникальный. Хотел бы я найти это пару часов назад.

Есть несколько полезных опций, таких как uniq -d только показывать строки с более чем 1 записью

$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | сортировать | uniq -cd
   Клиент 3886 отклонен конфигурацией сервера
      2 Дайджест
   6091 Файл не существует
     20 запрос не выполнен

uniq -u показывать только строки uniq только 1 запись

$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | сортировать | uniq -u  
  Apache настроен - возобновление нормальной работы

Теперь я могу обработать наши миллиардные файлы журнала и разобраться в том, что происходит с ними.

Другие вопросы по тегам