無事サーバマシンは(ほぼ通常通りの)環境を取り戻し、元気に?稼働しています。
(BLOGはオープンしていますが、ホームページはもう少し後になります。これを機に、いろいろ変更しようと思っていますので。のんびりやります ^_^;;)
さて、うちのサーバは当然ダイナミックDNSサービスを利用しての公開ですので、(めったにないのですが)割り当てられるIPアドレスの変更に対応するため、DiCEを使い、必要に応じてDNSを自動的に書き換えるようにしています。
しかしこのDiCE、文字コードがEUC−JPなんですよね。それに対してCentOSは文字コードがUTF。なので、SSHでリモートログインしてからそのままDiCEの状況を確認したり手動でリストを実行したりすると、当然のように文字化けしてしまいます。
実際のところ、SSHでログインし、DiCEを手動で実行することなどほとんどありません。まれにそういう機会があったとしても、ローカルの端末の文字コードを一時的にEUC−JPに設定し直して使ったりしていました。
しかもSSHからDiCEを使う用途は限られている(というか、実際にはDNSが更新されていない、という連絡を受けての手動でのリストの実行しかない)ので、そのうち文字化けさせたまま一連の手順を実行させてしまったりしてました。
ですが、時折リストの実行結果がエラーだったりすることがあり、やっぱりちゃんとメッセージが読めるようにしておかないとダメだなぁ、と思うことがあったりしました。
そんな時、文字コード(漢字コード?)を変換してくれるnkfをインストールし(普通にyumでいけます)、パイプを通すことでいちいち端末の文字コード設定を変えなくても文字化けさせなくするという方法を知りました。
具体的には、次のようにパイプでつなぎます。
# ./diced | nkf -uw
先のリンク先によれば、nkfに付けられているオプションの意味は
u 改行コードをLFに
w 漢字コードをUTF-8で出力
だそうで、実際にこれで試してみたところ、文字化けすることなく実行結果を判読することができました。
このところ僕が利用しているMyDNS.jpから更新失敗のメールが来ないこともあって、なかなかこの情報にお世話になることがないのですが、シェルスクリプトで記述しておいて、設定コマンドで自動的にパイプしてくれるようにしたほうが便利かも、ですね!