ログはどこにありますか?
出力ファイルを最上位のディレクトリ レベルに置きます。
$ cd /log
ファイルが存在するかどうか、およびファイルにデータが含まれているかどうかを確認するには:
$ ls -la cron_log.log
必要に応じてログ ファイルを作成するには:
$ touch cron_log.log
独自のローカル デバッグ用のアクセス許可を開くには (本番環境ではこれを行わないでください!)
$ chmod +rw cron_log.log
コマンドは実行されていますか?
コマンドを手動で実行して、期待どおりに動作するかどうかを確認するには:
$ /bin/bash -l -c 'echo "hello" >> /log/cron_log.log 2>&1'
セキュリティを向上させ、パスを保護するには、フル パスを使用します。
wrong: command 'echo "hello"'
right: command '/bin/echo "hello"'
コマンドのフルパスを見つけるには:
$ which echo
cron が期待どおりに実行されていることを確認するには:
$ sudo grep CRON /var/log/syslog
grep の結果には、次のような行が含まれているはずです。
Jan 1 12:00:00 example.com CRON[123]: (root) CMD (... your command here ...)
あなたはMacを使っていますか?
syslog に出力が表示されず、Mac を使用している場合は、Mac OSX の からcron
への切り替えについて読むことをお勧めしますlaunchd
。
cron plist (/System/Library/LaunchDaemons/com.vix.cron.plist) を参照し、stdout/stderr パスを使用して cron 自体をデバッグします。launchctl のアンロードと plist の launchctl のロードで十分かどうか、または完全に再起動する必要がある場合はシステムデーモンであるため、思い出せません。( lion の cron ログ ファイルの場所を参照してください)
Railsに関連してログを記録する方法は?
Rails アプリに関連するログを配置するには、先頭のスラッシュを省略します (通常は cron.log と呼びます)。
set :output, "log/cron.log"
ログを特定の完全修飾ディレクトリに配置するには:
set :output, '/abc/def/ghi/log/cron.log'
When wiki には、出力のリダイレクトに関する良い例がいくつかあります。
https://github.com/javan/whenever/wiki/Output-redirection-aka-logging-your-cron-jobs
例:
every 3.hours do
runner "MyModel.some_process", :output => 'cron.log'
rake "my:rake:task", :output => {:error => 'error.log', :standard => 'cron.log'}
command "/usr/bin/cmd"
end