Como posso descobrir por que o cron não está executando meus trabalhos?

Como posso descobrir por que o cron não está executando meus trabalhos?

Estou usando o Ubuntu 14.04 e o daemon cron está em execução:

# ps ax | grep cron
822 ?        Ss     0:00 cron

mas não está executando nenhum trabalho. Anteriormente, eu estava recebendo entradas /var/log/syslogcomo esta:

2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))

mas agora não há entradas relacionadas ao cron. Eu também estava recebendo entradas como esta em /var/log/auth.log:

2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root

mas, novamente, agora não há entradas relacionadas ao cron.

Não estou ciente de que algo tenha mudado. Eu tentei reiniciar o cron:

# service cron restart
cron stop/waiting
cron start/running, process 24907

Tentei usar crontab -epara adicionar um cron job * * * * * date >> /tmp/somefileque funcionou, mas ele instalou um novo crontab em /var/spool/cron/crontabs/root, enquanto quero que o cron use o arquivo em /etc/crontab.

Existe alguma opção de depuração que eu possa usar ou um log em algum lugar que possa fornecer uma mensagem de erro que eu possa investigar?

Responder1

Para ajudá-lo ainda mais a depurar o que há de errado com seus crontrabalhos, verifique seu e-mail. Isso geralmente é armazenado em um arquivo como /var/mail/<user_name>ou /var/spool/mail/<user_name>.

Esses dois arquivos são, na verdade, hardlinks na minha caixa Debian, mas não sei se isso é padrão.

Explicação

Da cron(8)página:

Ao executar comandos, qualquer saída é enviada ao proprietário do crontab (ou ao usuário nomeado na variável de ambiente MAILTO no crontab, se existir).

Responder2

Você mostrou que não existe crontab para root. Algum usuário tem uma entrada crontab? Se você estiver usando apenas root, também poderá verificar os seguintes diretórios: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly

na minha máquina (centos 6.4), tenho mlocate.cron dentro do diretório /etc/cron.daily/ e o cron executa esse script diariamente.

então acho que você só precisa adicionar tarefas cron.

Responder3

Resolvi isso alterando as permissões /etc/crontabpara o seguinte:

-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab

Anteriormente era -rw-rw-r--. Essa foi a única mudança. Não estava funcionando, agora está. Ainda não tenho certeza do porquê.

Responder4

Eu também tive um tipo de problema semelhante, mas depois de especificar o root como usuário no /etc/crontab, o cron job começou a ser acionado.

Pode ser devido à sintaxe seguida no crontab -eque é diferente do /etc/crontab.

informação relacionada