Existe alguma maneira de excluir entradas específicas dos arquivos de log do Linux?

3

Especificamente, estou tentando manter um cron.log limpo e limpo sob o Ubuntu Server (hardy LTS). Além dos 4 ou 5 cron jobs que vêm pré-instalados, adicionei 4 dos meus trabalhos (usando o método cron.d). Agora, uma das tarefas instaladas automaticamente é o script de expiração da sessão do PHP que é executado a cada hora.

Ele precisa ser executado, com certeza, mas francamente eu não me importo quando ele é executado. Ele é executado a cada hora e gera uma entrada semelhante à abaixo.

Oct 18 02:17:01 cobalt /USR/SBIN/CRON[18160]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Oct 18 02:39:01 cobalt /USR/SBIN/CRON[18233]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm)

Como isso é executado a cada hora e produz uma entrada de log comparativamente longa, ele é responsável por 90% do meu cron.log. Se eu estiver folheando o arquivo de log para garantir que meus scripts de backup diários sejam executados, eles são engolidos por todas essas entradas.

Existe alguma maneira de eu excluir esse processo de ser registrado?

Eu percebo que posso usar o grep ou um programa de leitura de log para pesquisar, mas não é exatamente isso que estou procurando. Eu gostaria apenas de ser capaz de "cat cron.log | less" e folhear sem registrar spam de processos que eu não me importo (e também percebo que esse processo seria importante na maioria dos servidores web, mas isso não é basicamente um servidor web e nem sequer permite conexão fora da empresa).

    
por DWilliams 19.10.2009 / 15:35

3 respostas

5

Qualquer syslog-daemon recente (como syslog-ng ou rsyslog) suporta a funcionalidade de filtro. Basta editar seu rsyslog.conf ou syslog-ng-conf para ignorar entradas para o nome do processo /USR/SBIN/CRON que contém a string CMD .

Melhor ainda: basta registrar essas mensagens em outro arquivo (por exemplo, cron-detail.log ).

Links de documentação:

por 19.10.2009 / 16:03
1

... ou você pode ser apenas preguiçoso e canalizar os logs através de grep -v FILTERSTRING ;)

    
por 19.10.2009 / 16:17
1

If I'm thumbing through the log file to make sure my daily backup scripts and such got executed, they get swallowed by all these entries.

Bem, os logs do sistema, como o cron.log, não devem ser exibidos regularmente. Se uma tarefa não puder ser executada ou produzir uma saída no stderr, você receberá mensagens de qualquer maneira.

Se você quiser uma notificação positiva de que suas tarefas agendadas foram executadas, faça com que as tarefas importantes gravem um arquivo de log separado, como important.log. Então você obtém um arquivo de registro com exatamente as informações interessantes, no formato que você gosta.

    
por 19.10.2009 / 16:39