
「crontab -e」を実行し、次の行を追加します。
0 9 * * * /usr/bin/python /home/g1/g1/utils/statsEmail.py > /home/g1/log/statsemail.log
しかし、動作しません。なぜでしょうか? スクリプト自体は動作します。また、ログは空です。
crontab 内の他のコマンドはこれであり、動作します:
0 9 * * * /usr/bin/python /home/g1/g1/sphinx/updateall.py > /home/g1/log/updateall.log
答え1
失敗の詳細を取得し、これを修正するには、crontab に MAILTO=youremail を追加できます。
編集: おそらく、cron はスクリプトを実行できないため、これを実行できません。
答え2
STDOUT をログファイルに書き込んでいますが、同じログファイルに STDERR もパイプする必要があります。現時点では、このスクリプトによって生成されたエラー メッセージはおそらく表示されないでしょう。
スクリプトが失敗する原因としては、cronjob を実行しているユーザーにスクリプトを実行する権限がないなどの単純なことが考えられます。また、cron は非常に単純な環境でコマンドを実行するため、通常の対話型シェル環境とは大きく異なる場合があることにも注意してください。
スクリプトを次のように変更します。
0 9 * * * /usr/bin/python /home/g1/g1/sphinx/updateall.py > /home/g1/log/updateall.log 2>&1
updateall.log には現在何が表示されていますか?
また、cron は通常、ログファイルにいくつかの情報を記録します。/var/log/cron.log には、cron ジョブについて何が記録されていますか?