Primeiramente, ao configurar um crontab, use o caminho completo para os comandos e scripts que você está chamando. Por exemplo:
-
tee
deve ser/usr/bin/tee
-
mailx
deve ser/bin/mailx
-
date
deve ser/bin/date
Nota: Se os caminhos forem diferentes no seu sistema, mude conforme apropriado
Além disso, os comandos de encadeamento em um crontab (por exemplo, encanamento, |
) podem ficar confusos rapidamente. Pode ser melhor colocar esses comandos em um script e chamar isso de cron.
Se isso não ajudar, siga estas etapas gerais de solução de problemas para o cron:
Verifique se crond
está ativado e em execução, por exemplo:
$ systemctl status crond | grep enabled
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
$ ps -ef | grep ^root.*crond
root 1251 1 0 May15 ? 00:00:55 /usr/sbin/crond -n
Verifique os registros do cron para ver se algum erro aparece (substitua UserName
pelo nome do usuário):
grep UserName /var/log/cron
Verifique o arquivo de mensagens do usuário para ver se alguma saída do cron está aparecendo lá:
more /var/mail/UserName
Se tudo mais falhar, anexe um redirecionamento no final da entrada do crontab para ajudar a detectar quaisquer erros espúrios que possam surgir. Por exemplo, em vez disso:
* * * * * /bin/date | /usr/bin/mailx -s cron.test [email protected]
Faça isso:
* * * * * /bin/date | /usr/bin/mailx -s cron.test [email protected] > /tmp/crontab.test.UserName.log 2>&1