Como sei se os trabalhos estão/estão se apresentando? - Crontab
Pergunta
Eu segui a sugestão em essa questão
Enquanto estou usando o Django, configurei o script para armazenar a data e a hora de cada execução do script no banco de dados, mas nenhuma entrada foi armazenada ainda no banco de dados.
Existe uma maneira de descobrir, além de digitar "top" e pesquisar?
Solução
Primeiro, eu provavelmente configuraria Cron para enviar a si mesmo qualquer saída usando MAILTO
:
Em /etc /crontab:
MAILTO=username
Segundo, geralmente adiciono algo ao meu script que (quase) não pode falhar, como o seguinte:
#!/bin/sh
echo "$0 ran on `date +%c`" >> /tmp/crontab_test.log
# ... rest of program
Se você está chamando um script python diretamente da Cron, poderá fazer algo semelhante ou criar um script de shell de wrapper.
Outras dicas
Se você instalou o Sendmail, poderá adicionar o seguinte a '/etc/aliases'
ROOT: your_name@domain.com
Depois de fazer isso, atualize os aliases executando este comando:
sudo newaliases
Cron enviará automaticamente o e -mail sempre que um trabalho é executado. Não há necessidade de especificar isso no arquivo crontab.
Além disso, certifique -se de você teste Seus recursos de email (por exemplo, verifique se você pode enviar e -mails do servidor) e, por fim, criar um cronjob trivial e testar se você receber um email.
Não presuma!
Além de configurar o Cron para enviar e -mail, você pode enviar a saída de Cron para uma instalação de log syslog separada, adicionando o seguinte ao seu /etc/syslog.conf
.
# Log cron stuff cron.* /var/log/cron.log
Isso deve registrar uma mensagem para /var/log/cron.log cada vez que um trabalho é executado.