При просмотре файлов журнала 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