crontabにはフルパスで。

crontabでコマンドを設定する時、

そこに記述するコマンドやファイル、ディレクトリにいたるまで全てフルパスで書かないとうまく動きません。

スクリプトを呼ぶ設定の場合も同じで、環境変数等が影響してくるので、

スクリプト内で記述している箇所も全てフルパスにしないとうまく動きません。

以下に例を記します。

例)crontab -eで登録する時。

誤:

$ crontab -e
15 13 * * * ls -ltr /home/ >> ls.log
16 13 * * * backup.sh

$ backup.shの中身
#!/bin/bash
tar cvfz test.tgz test

正:

$ crontab -e
15 13 * * * /bin/ls -ltr /home/ >> /home/work/ls.log
16 13 * * * /etc/cron.hourly/backup.sh
★コマンドとリダイレクション先ファイルをフルパスで記述。
★呼び出すスクリプトをフルパスで指定。

$ backup.shの中身

#!/bin/bash
/bin/tar cvfz /home/work/test.tgz /home/work/test
★コマンドとファイルをフルパスで指定。

今のところ知る限りでは、この方法でやらなければ駄目な様です。