Por que meu crontab não está em execução?

7

Eu tenho este cron

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

Eu tenho este cron sob um usuário diferente, então eu mudo os usuários para implantar

sudo su deploy
crontab -e

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

tail -n300 -f /var/log/syslog

e 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á rodando ou há um problema de permissão ... Quando executo a tarefa no console 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

    
por Matt Elhotiby 05.07.2012 / 18:13

1 resposta

14

O CRON fornece a saída dos aplicativos (stdout, stderr) via correio local. O Ubuntu aparentemente 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á perguntado sobre qual configuração usar como padrão. Você deve selecionar a configuração Local only .

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 escrever a saída de log para um arquivo de log dedicado ou canalizar / redirecionar a saída para um arquivo usando a funcionalidade de shell integrada ...

    
por 02.04.2013 / 18:46