Procura e classifica os logs de erro com base em uma string específica

2
  1. Como pesquisar em todos os erros.zip e também em arquivos errors.log, filtre por "Erro" e classifique por data?

  2. E quanto ao total de erros?

requisito: aqui estão 3 componentes instalados no meu servidor Linux, como comp1, comp2 e comp3. Cada componente tem seu próprio diretório de registros. Cada diretório de logs contém arquivos abaixo Exception.log connection.log comp1.log bem como alguns arquivos * .zip. Eu quero pesquisá-los, encomendá-los com base na data juntamente com a necessidade de mostrar o número total de contagem de erros.

logs de erros

2015-05-15 05: 59: 03,316 | 73002 | ERRO | JomaManagerThread RUNNING | Erro ao limpar os alarmes do JOMA

Por favor me avise para informações adicionais

    
por user112232 15.05.2015 / 07:46

1 resposta

1

Como você não parece precisar dos nomes dos arquivos, você pode usar -p para gerar o conteúdo dos arquivos zip:

(for i in ./*.zip; do unzip -p "$i"; done; cat ./*.log) |
   grep -F ERROR | sort 

ou se os arquivos errors.zip estiverem em todo lugar:

(find . -type f -name "*.zip" -exec unzip -p {} \;
 find . -type f -name "err*.log" -exec cat {} + ) |
   grep -F ERROR | sort

Isso elimina o nome do arquivo zip e o nome do arquivo de conteúdo específico que o descompactador extrai, bem como o nome do arquivo de log. Se você precisar dessa informação, eu escreveria um programa python para a tarefa, que insere o nome do arquivo em algum lugar em cada uma das linhas encontradas (não antes da data, é claro). Você pode usar o módulo zipfile padrão para processar o conteúdo de um arquivo zip sem primeiro extrair os arquivos e fazer com que o programa grave no stdout para canalizar para sort

    
por 15.05.2015 / 08:03