2012-02-27 7 views
0

コマンドラインから正常に実行できるシェルスクリプトがあります。ファイルの解凍時にcronジョブが失敗する

しかし、同じスクリプトをcronジョブ内で実行しようとすると、ファイルの解凍が行われた部分まで正常に実行され、解凍部分で失敗します。

"UNZIP FILES"のエコーが発生し、処理が失敗します。

私はコマンドラインからスクリプトを正常に実行できますが、cronとしてではなく、なぜunzip部分でエラーが発生するのでしょうか?

ここでは、スクリプトの解凍一部です:コマンドラインとは対照的に、

# Unzip the zipped files that were brought down 
echo "\n*** UNZIP FILES ***" 
cd $FILES_DIR 
for z in *.zip; do unzip $z; done 
+1

'$ FILES_DIR'の値は何ですか?エラーメッセージは何ですか? crontabに '$ PATH'とは何ですか?それともあなたのスクリプトでそれを修正しますか? '$ FILES_DIR'に' .zip'ファイルがありますか? –

+0

ah ha - 非常に良い質問、ありがとうございます - 私はシェルに直接ログインするのとは対照的に、$ PATHがcrontabとは異なるように見えます。シェルを開くときのように、crontabに$ PATHを設定する "正しい"方法はありますか?または、スクリプト内に$ PATHを設定するだけですか? –

答えて

1

$PATHcrontabに異なっていました。

crontab$PATHがコマンドラインを起動したときと同じになるように更新してから、問題なくcrontabを実行することができました。

Zsolt Botykaiが良い質問をしてくれたので、答えにつながった。