Evitar o ruído de log de tarefas agendadas - com syslog-ng em vez de syslog

5

No meu pequeno servidor web squeeze, tenho o syslog-ng instalado ( não syslogd, como em esta questão ). Geralmente, meus logs são agradáveis e silenciosos, com

-- MARK -- 

linhas. Meu /var/log/syslog , no entanto, está cheio disso

Sep 23 23:09:01 bookchin /USR/SBIN/CRON[24885]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete > /dev/null)
Sep 23 23:09:01 bookchin /USR/SBIN/CRON[24886]: (root) CMD (  [ -d /var/lib/php4 ] && find /var/lib/php4/ -type f -cmin +$(/usr/lib/php4/maxlifetime) -print0 | xargs -r -0 rm > /dev/null)
Sep 23 23:17:01 bookchin /USR/SBIN/CRON[24910]: (root) CMD (   cd / && run-parts /etc/cron.hourly)

tipo de lixo. Qual é a maneira limpa de evitá-lo (novamente, com o syslog-ng)?

    
por einpoklum 27.09.2012 / 22:26

2 respostas

8

Para o syslog-ng, é um pouco diferente do syslog normal: você precisa adicionar o cron ao filtro associado a /var/log/syslog . Em /etc/syslog-ng/syslog-ng.conf , substitua isto:

filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };

com:

filter f_syslog3 { not facility(cron, auth, authpriv, mail) and not filter(f_debug); };

e pronto.

    
por 27.09.2012 / 22:28
3

Outra opção é impedir que o cron registre qualquer coisa, exceto erros:

altere /etc/default/cron :

  # Or, to log standard messages, plus jobs with exit status != 0:
  # EXTRA_OPTS='-L 5' 
  #
  # For quick reference, the currently available log levels are:
  #   0   no logging (errors are logged regardless)
  #   1   log start of jobs
  #   2   log end of jobs
  #   4   log jobs with exit status != 0
  #   8   log the process identifier of child process (in all logs)
  #
  EXTRA_OPTS="-L 0"

Por padrão, a linha EXTRA_OPTS é ""

Adendo:

Alguém editou incorretamente esta resposta para dar a impressão de que -L 0 impediria que o cron registrasse "completamente". Isso está incorreto. Observe a descrição de 0 no texto que postei:

 #   0 no logging (errors are logged regardless)

Ou use apenas 4:

  #   4   log jobs with exit status != 0

O OP queria evitar a mensagem de log a cada minuto para o início de um cron job. Registrar somente erros ou erros e status de saída diferente de zero é uma boa opção.

    
por 31.05.2013 / 19:57