cron 環境変数

Linuxでは、crontabにバッチを登録しておいて、一定時間毎に実行させるということはよくあることだと思います。
今日は、そこでのちょっとした注意点について記録しておきます。

crontabの設定では以下のように書いています。

$ crontab -l
0 0 * * * /bin/sh /var/scripts/aaa.sh
0,30 * * * /bin/sh /var/scripts/bbb.sh

ここで、aaa.shのスクリプトファイルは、環境変数の設定が実行するためには必要なファイルです。
ちゃんと環境変数が設定されているかチェックしてみます。

$ echo $HENSU
hoge

環境変数にはちゃんとセットされています。

しかし、0時0分がやってきて、aaa.shが実行されると、環境変数が設定されていないというエラーが発生!!

で、少し調査・・・
すると、cronの実行時に環境変数を設定してあげないと駄目なことがわかりました。
設定の仕方は次の通りです。

$ crontab -l
HENSU=hoge
0 0 * * * /bin/sh /var/scripts/aaa.sh
0,30 * * * /bin/sh /var/scripts/bbb.sh

これで環境変数が設定された状態でaaa.shが実行されます。
※ちなみに、HENSU=hogeを最後に書いてもうまくいきませんでした。