Como posso usar o grep para encontrar os erros recorrentes mais frequentes no meu arquivo de log?

3

Eu tenho um aplicativo PHP que está gerando grandes quantidades de avisos e avisos no arquivo log .

Estou corrigindo esses de cada vez.

Eu gostaria de poder corrigir o mais freqüentemente ocorrendo primeiro para maximizar a quantidade de efeito que minhas alterações têm no tamanho do arquivo de log.

Como posso usar o grep / sed / regex etc. descobrir quais avisos são mais frequentes?

Não consigo comparar toda a linha, pois o carimbo de data / hora está no início, mas talvez uma listagem / agrupamento / classificação de " on-line ... " ?

texto alternativo http://i26.tinypic.com/2805zxy.png

    
por Edward Tanguay 10.08.2009 / 09:11

2 respostas

8

Que tal isso?

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

Ou seja,

  1. Obtenha as linhas certas do arquivo de log
  2. Corte a data na frente
  3. Classifique-as
  4. Agregue e conte as duplicatas
  5. Classificar por número de duplicatas
por 10.08.2009 / 09:44
0

Eu acho que isso é mais conciso, então você realmente poderia evitar 'cortar'.

  grep -o 'on line [[:digit:]]*' /var/log/nginx/error.log | sort | uniq -c | sort -nr
    
por 06.10.2011 / 16:33