Como detectar erros em tarefas agendadas

4

As razões pelas quais um cron job pode falhar são realmente muito grandes. Razões mais comuns podem ser,

  
  • Erro de sintaxe
  •   
  • Usando o executável sem o caminho correto
  •   
  • Usando uma variável shell que não está definida no ambiente cron
  •   
  • Tentativa de abrir uma GUI sem especificar DISPLAY
  •   

E assim por diante ...

Às vezes, é realmente difícil entender qual erro está impedindo que o trabalho seja executado. Existe uma maneira de detectar erros em tarefas agendadas?

    
por souravc 08.02.2014 / 20:06

2 respostas

3

Configure o Correio local e receba e-mails de saída da tarefa cronográfica

Quando uma tarefa do cron é iniciada com êxito ou falha na execução por algum motivo, o daemon do cron envia automaticamente um email para o usuário que configurou a tarefa cron. Esse e-mail contém a descrição de um trabalho bem-sucedido ou o relatório detalhado por que a tarefa do cron em particular falhou.

Se o seu sistema de e-mail local não estiver configurado, você não receberá esses e-mails. Os e-mails de saída da tarefa do cron apenas morrerão em uma pasta de spool de correio local. Então você precisa configurar seu daemon mailer para ler esses e-mails. Veja esta resposta em Como ler e-mail local no thunderbird para obter todos os seus e-mails locais.

Se o seu cronjob falhar, você receberá um email indicando o motivo da falha. Esta é uma das melhores maneiras de detectar o erro na configuração de um cron job.

Formas alternativas

De acordo com esta resposta , pode-se obter erros de um cronjob em um arquivo de log usando o redirecionamento. Mas você precisa definir o redirecionamento com sua tarefa cron e especificar o arquivo de log por conta própria.

E o arquivo /var/log/syslog está sempre disponível para verificar se o trabalho do cron está funcionando conforme o esperado não.

    
por souravc 08.02.2014 / 20:06
0

Há uma extensa resposta aqui que explica como fazer o sistema 16.04 LTS criar um arquivo cron.log separado e como fazer um comando wcron que o assiste em tempo real.

16.04: Como faço o cron criar o cron.log e monitorá-lo em tempo real?

Ele também inclui informações para alterar os níveis de log, para que você possa ver não apenas o lançamento do script (padrão), mas também os horários de encerramento e os erros.

Mostra claramente quaisquer erros que geram.

    
por SDsolar 22.10.2017 / 08:43