Como ser notificado sobre tarefas agendadas com falha

3

Estou preocupado que as tarefas do cron possam falhar silenciosamente por um período indefinido de tempo no Ubuntu Desktop 12.04.1 (Precise) e ninguém notará. Eu gostaria de receber uma notificação sempre que uma tarefa cron do sistema imprimir alguma saída ou simplesmente falhar.

Eu sei que é possível instalar um servidor de e-mail (por exemplo, postfix), configurá-lo para entrega somente local, configurar um alias para que o e-mail root seja entregue à minha conta de usuário normal e configurar um cliente de e-mail para verificar meu local caixa de correio.

Existe alguma alternativa leve para esta solução no Ubuntu?

    
por Till Ulen 24.08.2012 / 18:11

4 respostas

1

Você pode redirecionar a saída de erro do seu comando cronjob para um arquivo. Aqui está um exemplo de uma linha em /etc/crontab :

01 3    * * *   user    /bin/command 2>> /var/log/some.file

Então, pelo menos, você tem uma pista se ocorrerem erros. Você pode até escrever um script para notificá-lo sobre o not-osd ou ferramentas similares quando o arquivo for alterado.

Editar:

O arquivo /var/log/syslog relata mensagens do cron também. Você pode querer dar uma olhada nisso. Para obter um arquivo de log dedicado para o cron deamon, edite /etc/rsyslog.d/50-default.conf e descomente / edite a linha que diz:

#cron.*             /var/log/cron.log

Não sei o que você vai encontrar lá, mas vale a tentativa. Relate como foi.

    
por con-f-use 24.08.2012 / 18:19
1

"Eu gostaria de receber uma notificação sempre que uma tarefa cron do sistema imprimir alguma saída ou simplesmente falhar."

Eu recomendaria usar algum tipo de ferramenta de monitoramento cron. Há alguns por aí, mas atualmente eu uso o Dead Man's Snitch ( link ) e gosto disso. Ele irá alertá-lo quando um cron job não fizer o check-in. Como você está fazendo, apenas enrole o seu URL de engate único após o trabalho e acerte o URL. Existem alguns outros por aí como o probyapp, mas eles não são gratuitos ... boa sorte.

    
por James 01.10.2013 / 20:35
0

Eu fiz algo como o seguinte, mas meu caso de uso é para um script ou conjunto de executáveis no cron:

0 1,13 * * * /usr/bin/php /var/www/html/script.php > /tmp/script.log 2>&1 ; [ $? -ne 0 ] && mail -s "Cron Failure Report 'date' " [email protected] <<< "Cron script.php Failed in Execution"

espero que ajude!

Para aplicação em todo o sistema, o DMS é uma opção. Por favor, atualize se você encontrou uma maneira diferente de fazer isso.

    
por Mustafa Mujahid 05.11.2016 / 10:36
-1

Você já tentou escrever um roteiro? Tenho certeza de que há uma maneira fácil como:

if cron.output = fail then notify-send "sorry bro"

    
por zuberuber 24.08.2012 / 18:20