cronで実行したプログラムが動作していなかったので、原因を調べるためエラーログを確認することにした。
Linuxではcronのエラーについての詳細はログとして出力されないので、別途外部ファイルに出力する設定をおこなう必要がある。
crontab -e
で、まずcrontabファイルを開き、以下のように「>>」以下を追記する。
59 23 * * * $HOME/.pyenv/shims/python /root/project/main.py >> /tmp/cron.log 2>&1
簡単に解説すると、プログラム実行時の標準出力・標準エラー出力を/tmp/cron.log
に追記する設定となっている。
>>
の後のパスは出力先のファイルを表し、2>&1
は標準出力と標準エラー出力を指定したファイルに同時に書き込みたい場合の記述方法だ。
これでcronの実行失敗時のエラー内容を外部ファイルとして確認することができる。