cronでシェルスクリプトが動作しない時
4月 19, 2010
バッチ処理用にシェルスクリプトを作成したら、通常cronに登録する前に手動で
動作確認をするだろう。手動だと上手くいったのに、cronだと動作しない、あるいは
一部がエラーになる、という状態になったら。
cronの記述や実行権限に問題がないという前提で話を進めるが、原因のひとつとして、
実行ユーザの環境変数が読み込まれていないことが考えられる。
(と言っても、この場合も環境変数とスクリプトの処理に相関関係があるという
前提で話を進めているが)
もしそうであれば、スクリプト内に実行ユーザの.bashrc等を読み込ませる
処理を記述すれば正常に動作するだろう。
#!/bin/bash
USERINFO=~/.bashrc
source ${USERINFO}
他の原因もあるかもしれないが・・・、取り急ぎ、cronエラーのメールが届く
環境であればそれを確認。サーバ内だったら/var/spool/mail配下を見てみる。
Categories: shell