· linux

cron debug

毎回ハマるのでメモしとく。

コンソールでは正しく動くけど、crontabに記述すると動かない。

調べてみる順番

1.crondが動くか確認

$ ps aux | grep crond
root     25500  0.0  0.0 119380  1256 ?        Ss   Sep10   2:29 crond

$ /etc/init.d/crond status
crond (pid  25500) is running...

2.実行権限あるか確認してみる

$ ls -l /var/cron/hoge.sh
-rwxr-xr-x  1 root   root     90 Nov 10 08:54 hoge.sh

3.ログを仕込んでみる

標準出力は 1
標準エラー出力は 2

0 5 * * * echo  "cron test" >> /home/dongri/cron-success.log 2>> /home/dongri/cron-error.log | mail -s "Cron Result" dongri@gmail.com

0 5 * * * /var/cron/hoge.sh >> /home/dongri/cron-success.log 2>> /home/dongri/cron-error.log | mail -s "Cron Result" dongri@gmail.com

※ 「2>&1」の意味は2の出力先を、1の出力先と同じようにする

4.cronログ見てみる

$ sudo tail -f /var/log/cron

5.メール確認してみる

こういう系メールは大体スパム扱いにされるので、Gmailのスパムフォルダを覗いてみる