crontab実行時のパス

crontabに記述したコマンド実行時のカレントディレクトリは、多分、そのユーザのホームディレクトリ。
なので、指定したコマンドが相対パスで別のコマンドを実行しているような場合、当然、相対パスで指定したコマンドが見つからないので、cronの実行に失敗する。そしてメールが飛んでくる。
これを防ぐには、crontabに環境変数HOMEを設定して、ホームディレクトリを変更しておく。
他にも環境変数PATHで必要な部分にパスを通したり、シェルスクリプト呼び出して「cd」でカレントディレクトリを移動するというのも有効。

SHELL=/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
HOME=/home/tappe  ←これをhoge.shのあるディレクトリにしておく
20 * * * * hoge.sh

みたいな感じ。
※追記
HOME=パス
だと動かない場合があるので
シェルスクリプトでカレントディレクトリを移動した方がいいかもしれない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です