Como localizar as mensagens de erro mais frequentes em um arquivo de log unix

6

Se eu tiver um arquivo de log de apache de exemplo de arquivo

Como extrair as principais mensagens de erro mais frequentes em um arquivo de log unix sem timestamps

a chave é mais freqüente mensagem de erro deve vir no topo da lista

    
por Jaya William 23.10.2013 / 07:22

2 respostas

11

cat /tmp/file :

ERROR 1 1234
ERROR 2 1234
ERROR 3 1234
ERROR 4 1234
ERROR 4 1234
ERROR 3 1234
ERROR 2 1234
ERROR 5 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 1 1234
ERROR 1 1234
ERROR 3 1234
ERROR 2 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 2 1234

grep "ERROR" /tmp/file | sort | uniq -c | sort -r :

  8 ERROR 1 1234
  5 ERROR 4 1234
  4 ERROR 2 1234
  3 ERROR 3 1234
  1 ERROR 5 1234
A primeira coluna

mostra quantas ocorrências de cada string foram encontradas Explicação:

grep "ERROR" /tmp/file\ # select only ERROR string
| sort\ # order
| uniq -c\ #  count duplicate items
| sort -rn # reverse order and use numeric sort

para os 5 principais erros, você pode adicionar |head -n5

    
por 23.10.2013 / 07:49
1

Acho que você precisa cortar o timestamp para obter um erro exclusivo

grep 'mensagem de erro' / logfiles | corte -d '' -f6- | classificar | uniq -c | sort -nr

    
por 01.07.2016 / 20:50