cronでの文字化けの対処方法

このQ&Aのポイント
  • RedHatLinux Enterprise Linux 4ESのcronで文字化けしてしまう問題について、解決策を探しています。
  • cronからの実行時にJavaの稼動ログが文字化けする問題を解決する方法について教えてください。
  • cronでの実行時に文字化けしないようにするためには、Javaのクラスファイルのエンコーディングを変更する必要があるかもしれません。
回答を見る
  • ベストアンサー

cronでの文字化け

RedHatLinux Enterprise Linux 4ESを使用しています。 rootではなユーザでcrontabを使用しており、 シェルファイルを呼び出し定期的に実行しています。 シェルファイルでは環境変数の設定を行い、 Javaのクラスファイルを実行しています。 Javaのクラスファイルで、稼動ログを出力(日本語)しています。 この時の稼動ログの出力ですが、 「Javaファイルの実行」「シェルファイルからの実行」ですと、 文字化けせずに出力されるのですが、 cronからの実行ですと、文字化けしてしまいます。 cronからの実行時に文字化けをしないようにする方法はあるのでしょうか? なお、JavaはShift-JISで作成しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

環境変数の設定が不足しているのではないでしょうか。 LANG は設定していますか?

susumufire
質問者

お礼

ご解答ありがとうございます。 早速試したところ、やはりLANGの設定がされておりませんでした。 LANGの設定を行ったところ、 稼動ログが文字化けせずに出力されました。 どうもありがとうございました!

関連するQ&A

  • cron実行結果メールが文字化け

    cronで定時にバックアップを取るシェルスクリプトを 実行しています。実行内容がメールで送信されるのですが バックアップ対象のファイルに漢字が含まれているので、その部分が文字化けしています。 文字化けを防ぐ方法はあるのでしょうか。 環境 RedHadLinux9 Kernel2.4

  • cronについて教えてください

    こんばんは。 Redhat Linuxを使用しております。 今回Cronで不要ファイルの削除を設定したいのですが、 その方法でわからない点があります。 「/etc/cron.monthly、cron.weekly、cron.daily、cron.hourly」 などの配下にシェルを置き、「/etc/crontab」ファイルの記載から これらシェルを呼び出すと思っています。 で「/var/spool/cron/user」ファイルなるものがありますが、 これの使用用途が分からず・・。 「/var/spool/cron/user」は必須の設定項目でしょうか?。 すみませんがアドバイスお願いします。

  • cronが実行されない

    環境:Vine Linux 2.6CR 現在、毎朝4時に、自分で作成したシェルをcrontabで登録して実行させているのですが、cronが動いてくれません。 psで、crondの実行は確認できています。 それと、cronの登録方法は、crontab -eで登録し、シェルは、/etc/cron.dailyに格納しています。 パスも登録しているのですが、実行してくれません。 どこがおかしいのでしょうか? アドバイスをお願いいたします。

  • cronジョブ

    cronの実行時間は、/var/spool/corn/ユーザ のファイルで 時間が記述されているので、実行される時間はわかるのですが、 cronで、ある1つのシェルスクリプトが起動した時間から終了までかかった時間を知りたいのです。 (timeコマンド、メール送信による判断は無しでお願いします。) linuxのどこかのログファイルに、cronのシェル1つ1つのジョブの終了時間が記述されている ファイルはないでしょうか?(可能であれば、実行時間もわかるとよいのですが。) ご教授お願いします。

  • cronからのメールをメールではなくログで残したい

    RedHatLinux9を使用しています。 デフォルトでcronの実行結果を root宛てにメールで送信するようになっていますが このメールを間違って消してしまいました。 メールだとちょっと心配なので できればログで残せればと思っているのですが そんなことできるのでしょうか? よろしくお願いします。

  • CRON起動できない

    Solaris+Cで開発しています。 作成したプログラムを、CRON起動で定周期で起動させたいのですが、  1.実行ファイルを作成  2.実行ファイルを起動するシェルを作成  3.作成したシェルをXX時XX分に起動するようにcrontabに設定 ・・・のようにしたのですが、以下のようなエラーでうまく動作しません。(proc_Aは実行ファイル名) ld.so.1: proc_A: fatal: libclntsh.so.8.0: open failed: No such file or directory Killed ちなみに、上記2で作成したシェルを直接たたくと、正常に動作します。 どのように対処すればよいか、ご教授願います。

  • cronで複数実行される

    いつもお世話になっています。 Solaris2.6ですが、cron実行でバックアップやらログローテートやら行っていたのですが、 先日、以下のことをやってしまい、二重実行されるようになってしまいました。 ・通常、rootでのcron実行 ・間違えて、一般ユーザのcronにrootとまったく同じものを書き込んでしまった。 ・一回検証で実行して気付き、一般ユーザのcronを削除(crontab -r)した。 これで、再度検証したときに問題なく動作していたようだったので(/var/cron/logを確認していないのがまずい・・・)、そのままにしておいたのですが、 その後、常にスクリプトが二回ずつ実行されるようになってしまいました。 何度もcrontabを確認し、しまいにはcronデーモンを再起動したのですが、今度は4つ同時に実行するようになってしまい、 さらに、cronデーモンを起動しなおしたら8つになってしまいました。 きちんと、killしているのですが、どうしてか分からず、どうしようもなくなっています。 再起動以外に何か解決方法はないでしょうか。 よろしくお願いいたします。

  • cronが急に動かなくなった

    こんにちわ。RedHat7.0なのですが、昨日まで快適に動いていた cronが突然動かなくなりました。 というのは、var/log/cronに何も吐かれなくなりました。 実際にcrontabに何か設定しても実行されません。 crondは起動していることを確認しました。 考えられる原因としては昨日システム日付を何度も変えた 事くらいでしょうか・・・。 今は正しい日付に戻してあるのですが、その作業をした 昨日の夕方からlogには何も吐かれなくなったので怪しいですよね。 解決策などアドバイスをいただけると嬉しいです。 宜しくお願いいたします。

  • CRON で シェル を動かしたい

    Fedora Core で バックアップを取るため夜にJOBを実行させたく思っています。調べた所crontabでスケジュールできるとの事なのでテストをしているのですがうまくいきません。 1. mkdir /home/postgres/BKUP/test このコマンドをcrontab -e に直接書くと狙った時間にtestフォルダが作成されます。 2. バックアップを取る際はもう少し色々やることになると思うのでシェルにして実行させました。ここではテストなので先ほどと同じ分をシェルに書いてcrontab -eでスケジュールしますが作成されません。 ***シェルの内容*** #!/bin/sh mkdir /home/postgres/BKUP/test *********************************** ・/var/log には履歴がかかれていました。 ・シェルには全ての権限をつけました。(777) 何がいけないのでしょうか?教えてください。

  • cronでメールを送信すると文字化けが起こります。

    一昨日にcronというものを知って、いろいろと弄り始めた初心者です。 cronで毎時1分にメールを送信させようと思いました。 cron1.sh というシェルスクリプト(?)で sendmail.php を実行させようとしています。 ---- cron1.sh ---- (保存形式は[UTF-8] 改行コードは[LF]) #!/bin/sh #PHP export LANG=ja_JP.jis /usr/local/bin/php /virtual/example/public_html/example.com/mail/sendmail.php exit ----------------- ---- sendmail.php ---- (保存形式は[UTF-8] 改行コードは[CR+LF]) <? $strMailFrom = "example@example.com"; // $header = "Content-Type: text/plain;charset=iso-2022-jp\r\n"; $header = "From: ".$strMailFrom; mb_language("Japanese"); $address = 'example2@example.com'; $subject = '件名です'; $message = "本文です"; if(mb_send_mail($address, $subject, $message, $header)){ print("メール送信完了"); }else{ print("送信に失敗"); } ?> --------------------- ちなみに起動させることまでは上手く行ったのですが、cronを経由して送信させたメールは文字化けが起こってしまいます。 また、実行結果メールも文字化けになっています。 (メーラーは Outlook です。) ちなみに、sendmail.php から直接のメール送信では文字化けは起こりませんでした。 いくつか自力で調べてみたところ、環境変数に問題があるのかと思ったので、export LANG=ja_JP.jis の部分を、LANG=ja_JP.eucJP、LANG=ja_JP.sjis に変えてみたりしたのですが結果は変わらず。 ファイルの保存形式自体がダメなのか、もしくは何か根本的な部分がダメなのかわかりません。レンタルサーバーのため一時間に一度しかcronで起動させることができないので、なかなか問題解決に至りません。 よろしければ良いアドバイスをください。お願します。 PHPも先月学んだばかりで、最近になってはじめて文字コードや文字化けというものを意識するようになったばかりの初心者です。何か不足している情報などありましたら、補足させていただきます。

    • 締切済み
    • PHP