crontabの環境変数を調べる

crontabの設定をしたのだけどコマンドが見つからずに動作していなかったので、crontabで実行されるときの環境変数を調べました。環境はUbuntu 14.04 LTSです。

$ which printenv
/usr/bin/printenv
$ crontab -e

でcrontabを編集します。crontabはファイルに書いておいて、それでリダイレクトとかで書いた方が安心みたい(誤ってcrontab -rで削除してしまう)だけど、とりあえずは良いかなーと。

PATH=/opt/node/0.10.32/bin:$PATH
*/2 * * * * /usr/bin/printenv >$HOME/printenv.txt
(元々のcrontab)

上で環境変数をファイルに出力させてみます。

$ cat printenv.txt
LANGUAGE=en_US:
HOME=/home/username
LOGNAME=username
PATH=/opt/node/0.10.32/bin:$PATH
LANG=en_US.UTF-8
SHELL=/bin/sh
PWD=/home/username

PATHが全然通っていない……

PATHの設定が正常に出来ていないということがわかったのでPATHをちゃんと指定してあげれば良さそうですね。

PATH=/opt/node/0.10.32/bin:/usr/bin:/bin
(元々のcrontab)

という風に書き直しました。これで正常に動作してくれるはず。