cronで実行した場合のパスの違い

cronで実行した場合とそうでない場合のパスの違いについて調べました。

環境

CentOS 6.5

調査方法

/etc/profile の最初の方で echo $PATH しました。

ターミナルでログインした場合

通常のターミナルからのログインでは、PATHの値は以下のようになりました。

/usr/local/bin:/bin:/usr/bin

cronで実行した場合

cronで /bin/bash -l -c 'echo $PATH >> /tmp/path.txt' を実行すると、PATHの値は以下のようになりました。

/usr/bin:/bin

cronで実行した場合は、PATHに /usr/local/bin が入りません。

cronで /usr/local/bin のコマンドを使うには?

cronファイルの最初の方で、以下のようにPATHを設定します:

PATH=/usr/local/bin:/bin:/usr/bin

これで /usr/local/bin のコマンドが使えるようになります。