Pular o log syslog / rsyslog de determinados cron jobs

1

Na maioria das distribuições GNU / Linux, o padrão é registrar o início (e muitos eventos diferentes) de cada tarefa cron no syslog. É bastante conveniente, mas não para trabalhos muito frequentes, que começam, digamos, a cada 1 minuto.

Eu sei como redirecionar todos os eventos de tarefas cron para um log diferente via /etc/rsyslog.conf ( *.*;cron,auth,authpriv.none -/var/log/syslog ) e é fácil restringir strongmente o registro para, digamos, apenas eventos de erro via /etc/default/cron ( EXTRA_OPTS="-L 4" ). Mas isso afeta todos os trabalhos agendados.

E se eu quiser restringir o registro em log de certas tarefas do cron (tarefas frequentes a cada 1 minuto)? É possível configurá-lo via /etc/rsyslog.conf ou /etc/crontab ? O sistema é Debian 8.0 Jessie.

    
por TranslucentCloud 14.05.2015 / 23:35

1 resposta

0

IMHO não é possível via arquivos de configuração porque isso, como você diz, afetaria todas as tarefas do cron para o usuário.

No entanto, é possível redirecionar com força apenas a saída stdout ou stdout e stderr de tarefas cron específicas como esta:

* * * * * cron_cmdline_job1 >> /<path>/cron_job1.stdout.log
* * * * * cron_cmdline_job2 >>& /<path>/cron_job2.stdout_stderr.log

A vantagem de redirecionar apenas stdout seria que você receberia imediatamente e enviaria um e-mail com o conteúdo stderr quando o job terminasse (se essa for sua preferência, também pode ser visto como uma desvantagem).

Se esses registros não forem de interesse, você poderá direcionar para / dev / null , é claro.

    
por 30.05.2015 / 18:46