cronで文字化けするときの対処

cronで文字化けするときの対処

Posted at August 12,2013 12:03 AM
Tag:[cron, Linux]

cronで文字化けするときの対処について紹介します。

1.cronで文字化けする原因

cronでスクリプトを時間指定で実行することがあると思いますが、cronはユーザーのシェルで起動しないため、ユーザーの環境変数は引き継がれません。

つまり、cron起動時には文字コードの環境変数LANGの設定などが行われておらず、デフォルトの文字コード以外の文字を標準出力するスクリプトやプログラムを実行すると、文字化けが発生します。

0 0 * * * /home/foo/foo.sh

2.cronで文字化けしないようにする

cronで実行したときに文字化けしないようにするには、cronの中でexport(sh・bash)またはset(csh・tcsh)を実行します。

例えば、bashの場合「crontab -e」で編集画面を開き、プログラムやスクリプトの実行前にexportコマンドを実行します。

0 0 * * * export LANG=ja_JP.eucJP; /home/foo/foo.sh

これでプログラムやスクリプト実行時にはLANGの設定が有効になります。

LANGに設定する文字コードは次のとおりです。

  • UTF-8:ja_JP.UTF-8
  • Shift_JIS:ja_JP.SJIS
  • EUC-JP:ja_JP.eucJP

3.まとめて設定する

実行するcrontabに一律環境変数を設定するには、次のようにcrontab -eの編集画面の先頭に環境変数の定義を記述します。

LANG=ja_JP.eucJP
0 0 * * * /home/foo/foo1.sh
30 0 * * * /home/foo/foo2.sh
  :

4.参考サイト

参考サイトは以下です。ありがとうございました。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)