Como descubro porque o cron não está executando meus trabalhos?

14

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

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

mas não está executando nenhum trabalho. Eu estava recebendo entradas em /var/log/syslog como este:

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 alguma coisa tenha mudado. Eu tentei reiniciar o cron:

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

Eu tentei usar crontab -e para adicionar um trabalho cron * * * * * date >> /tmp/somefile que funcionou, mas ele instalou um novo crontab em /var/spool/cron/crontabs/root , enquanto eu 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 dar uma mensagem de erro que eu possa investigar?

    
por jl6 08.05.2014 / 21:41

4 respostas

4

Para ajudar você a depurar o que está errado com seus trabalhos de cron , 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 eu não sei se isso é padrão.

Explicação

Da página cron(8) :

When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if such exists).

    
por 09.05.2014 / 00:18
0

Você mostrou que não há crontab para o root, algum usuário possui uma entrada crontab? Se você está usando apenas root, então você também pode verificar os seguintes diretórios: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly

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

então eu acho que você só precisa adicionar trabalhos agendados.

    
por 08.05.2014 / 23:57
0

Resolvi isso alterando as permissões em /etc/crontab para 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ê.

    
por 16.05.2014 / 21:54
0

Eu também tive um problema semelhante, mas depois de especificar a raiz como usuário no /etc/crontab , a tarefa cron começou a disparar.

Pode ser devido à sintaxe seguida no crontab -e , que é diferente do /etc/crontab .

    
por 22.10.2015 / 10:54

Tags