cron の設定がうまくいかず情報の更新が相当いけてないことになっていた。。
よくよく調べてみると以下が原因でした。
1:PATH の設定が不正
2:LANG の設定が不正
3:パスが不正
1は要は cron が実行する時の環境変数 PATH が自分で実行する際の PATH と違う。
ちなみに cron が持ってる PATH は /usr/bin:/bin のみでした。
/usr/local/bin とかないです。
実行するスクリプトの先頭に以下な感じで書きましょう。
export PATH=/usr/local/bin:/usr/local/java/bin:${PATH}
2はこれを設定していないと日本語の処理で不具合が生じます。
今回の場合は正規表現で日本語を引っ掛けていたのですがそれが機能していませんでした。
ということでスクリプトの先頭に以下を追記。
export LANG=ja_JP.UTF-8
3はスクリプト内で参照しているパスを絶対パスで書きましょうという話。
それかスクリプトの先頭で cd で所定のパスに移動するか、どちらか。
この3つを確認したところちゃんと動くようになりました。
結局どれも基本的なことでした。。
あとさくらインターネットでは普通に cron を設定するとエラー出力が見れないので、
確認したい場合は以下な感じで標準エラーをどこかに吐いてやるとよさげ。
/home/hoge/cron.sh 2> /home/hoge/err.log
ご参考までに。
No comments :
Post a Comment