Por que meu crontab não está funcionando

Por que meu crontab não está funcionando

eu tenho esse cron

38 * * * * /bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\'''

Eu tenho esse cron com um usuário diferente, então troco de usuário para implantar

sudo su deploy
crontab -e

e eu vejo meu cron, então sigo o log sob o usuário root

tail -n300 -f /var/log/syslog

e eu vejo meu cron

Jul  5 11:38:01 ip-10-70-75-234 CRON[4971]: (deploy) CMD (/bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\''')
Jul  5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)

Mas o cron não está em execução ou há um problema de permissão... Quando executo a tarefa no console, ela funciona muito bem, mas não no cron... alguma ideia do que estou perdendo

este é o Ubuntu 12.04 LTS

Talvez eu possa registrar uma lista mais detalhada em algum lugar para ver os erros

Responder1

CRON entrega a saída dos aplicativos (stdout, stderr) via correio local. Aparentemente, o Ubuntu não possui um MTA (Mail Transfer Agent) instalado por padrão atualmente. CRON imprime uma notificação no arquivo de log do sistema sempre que uma entrega falha:

Jul  5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)

Você pode instalar um MTA, por exemplo, postfix, apenas para uso interno (local), por exemplo

aptitude install postfix

Durante a instalação, você será questionado sobre qual configuração padrão usar. Você deve selecionar a Local onlyconfiguração.

Depois disso, você pode encontrar a saída dos aplicativos executados pelo CRON usando

tail -f /var/mail/<your_username>

É claro que você também pode gravar a saída do log em um arquivo de log dedicado ou canalizar/redirecionar a saída para um arquivo usando a funcionalidade interna do shell...

informação relacionada