
Eu faço "crontab -e" e adiciono a seguinte linha:
0 9 * * * /usr/bin/python /home/g1/g1/utils/statsEmail.py > /home/g1/log/statsemail.log
Mas não funciona! Por que? O script em si funciona. Além disso, o log está vazio.
Meu outro comando no crontab é este e funciona:
0 9 * * * /usr/bin/python /home/g1/g1/sphinx/updateall.py > /home/g1/log/updateall.log
Responder1
você pode adicionar MAILTO=youremail ao crontab para obter detalhes da falha e corrigir isso.
EDIT: provavelmente seu cron não pode executar seu script porque não é permitido fazer isso
Responder2
Você está gravando STDOUT em um arquivo de log, mas também deve canalizar STDERR para o mesmo arquivo de log. No momento, você provavelmente não verá nenhuma mensagem de erro gerada por este script.
Seu script pode estar falhando devido a algo simples, como o usuário que executa o cronjob não ter permissão para executar o script. Além disso, lembre-se de que o cron executa comandos em um ambiente muito simples e pode ser muito diferente do ambiente shell interativo normal.
Mude seu script para este:
0 9 * * * /usr/bin/python /home/g1/g1/sphinx/updateall.py > /home/g1/log/updateall.log 2>&1
O que updateall.log mostra agora?
Além disso, o cron geralmente registra algumas informações em um arquivo de log. O que /var/log/cron.log diz sobre o seu cronjob?