Encontre as diferenças entre as versões de um arquivo de log

1

Existe um utilitário que mostrará a diferença em um diretório de arquivos de log em um determinado momento e no momento atual?

Um método atual de depuração de aplicativos é remover todos os logs antes que o problema ocorra e, em seguida, reproduzir o erro, salvar os novos. No entanto, existe um utilitário que me ajudará a fazer isso e evitar a remoção dos arquivos de log existentes?

Estou procurando um utilitário baseado em Linux. Eu também me importo apenas com o novo conteúdo, não com qualquer um dos logs antigos.

    
por monksy 16.04.2013 / 19:53

2 respostas

2

Bem, se um simples trabalho cron funcionar, você pode configurar algo assim:

  1. Como root run crontab -e e adicione esta linha aos seus crontabs:

    00 22 * * * tar czf /log_backups/'date +%m%d%Y'.tgz /var/log/ 
    

    Isso será executado todas as noites às 22:00 e criará um arquivo chamado .tgz no diretório /log_backups/ . Então, se hoje é 16 de abril de 2013, ele irá criar um arquivo chamado 04162013.tgz

  2. Se você quiser comparar os logs do apache de hoje com os de ontem, basta extrair a tarball relevante e comparar os arquivos (obviamente, você precisará fazer backup dos logs de ontem):

    tar xzf /log_backups/03162013.tgz -C /tmp/
    diff /var/log/apache2/error.log /tmp/var/log/apache2/error.log
    

Você pode tornar isso muito mais sofisticado extraindo apenas o arquivo relevante do repositório ou escolhendo quais arquivos adicionar ao arquivo morto, etc. etc.

    
por 16.04.2013 / 20:32
1

Por que não usar logrotate ( man page )?

Parece exatamente o que você está procurando:

logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.

Normally, logrotate is run as a daily cron job. It will not modify a log multiple times in one day unless the criterion for that log is based on the log's size and logrotate is being run multiple times each day, or unless the -f or --force option is used.

Any number of config files may be given on the command line. Later config files may override the options given in earlier files, so the order in which the logrotate config files are listed is important. Normally, a single config file which includes any other config files which are needed should be used. See below for more information on how to use the include directive to accomplish this. If a directory is given on the command line, every file in that directory is used as a config file.

If no command line arguments are given, logrotate will print version and copyright information, along with a short usage summary. If any errors occur while rotating logs, logrotate will exit with non-zero status.

    
por 17.04.2013 / 19:48

Tags