crontabが動作しないのはなぜですか

crontabが動作しないのはなぜですか

私はこのクローンを持っています

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

このcronは別のユーザーで実行しているので、ユーザーを切り替えてデプロイします

sudo su deploy
crontab -e

そして、私は自分のcronを見て、ルートユーザーの下でログを追跡します

tail -n300 -f /var/log/syslog

そして私は自分のクローンを見る

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)

しかし、cron が実行されていないか、権限の問題が発生しています...コンソールでタスクを実行すると正常に動作しますが、cron では動作しません...何が足りないのかわかりません

これはUbuntu 12.04 LTSです

エラーを確認するために、より詳細なリストをどこかに記録できるかもしれません

答え1

CRON は、アプリケーションの出力 (stdout、stderr) をローカル メールで配信します。Ubuntu には、どうやら最近のデフォルトでは MTA (メール転送エージェント) がインストールされていないようです。CRON は、配信が失敗するたびに、システム ログ ファイルに通知を出力します。

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

内部(ローカル)使用のみのMTA(例:postfix)をインストールすることができます。例:

aptitude install postfix

インストール中に、どのデフォルト設定を使用するか尋ねられます。Local only設定を選択する必要があります。

その後、CRONで実行されたアプリケーションの出力を次のようにして見つけることができます。

tail -f /var/mail/<your_username>

もちろん、組み込みのシェル機能を使用して、ログ出力を専用のログ ファイルに書き込んだり、出力をファイルにパイプ/リダイレクトしたりすることもできます...

関連情報