SSブログ

cron で実行されるときの言語環境 [その他]

linux で遭遇した現象の話

レンタルサーバ上で検索を実現するために、ローカル linux PC で namazu のデータを作っている環境がある。

namazu データを作り、ftp で転送するシェルスクリプトを当然作り、手順を間違えないようにしている。そして、このシェルスクリプトをcron で一日1回実行するようにしている。

このような環境で動作を始めてから、数ヶ月経って、以下のようなクレームが来た。

「更新したファイル・新しいファイルが検索対象となっていないように見える」

確認すると確かに、検索対象になってないように見える。
ためしに、手でシェルスクリプトを実行すると、「あれ?」きちんと検索対象となっている。

タイムスタンプが変になっているのか?元ファイルを windows からコピーしているので、それが変なのかなどいろいろ調査したが良く分からない。

しかし、先日やっと解決した。

cron でシェルスクリプトが実行するときに、LANG=C であったようなのだ。もちろん、linux OS 自体の環境は LANG="ja_JP.eucJP" と日本語環境になっているのだが、cron で呼ばれたときはそうでなかったらしい。なので、手で実行したときと、cron で実行したときで結果が違っていたのである。

調べると、確かに、英単語を検索対象にしたときは、きちんと検索対象になっていた。さらに、namazu を実行したときに表示されるメッセージが、手で実行したときは日本語、cron でのときは英語になっていた・・・気づかなかった^^

今後は cron の時の環境にも、より気を使うようにしなければ・・・


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。