また失礼します。
ftpのログを監視したいのですが、
logファイル(xferlog)の中身が日本語の部分がすべて?に変わってしまっています。(日本語のファイルをSJISでUPしています。)文字コードを変更しても直りませんでした。これは日本語に対応していないということでしょうか。
もし対応する方法を知っておりましたらお教え願いますでしょうか。
OS:fedoracore3
ftpserver:vsftpd
> ftpのログを監視したいのですが、
> logファイル(xferlog)の中身が日本語の部分がすべて?に変わってしまっています。(日本語のファイルをSJISでUPしています。)文字コードを変更しても直りませんでした。これは日本語に対応していないということでしょうか。
> もし対応する方法を知っておりましたらお教え願いますでしょうか。
>
> OS:fedoracore3
> ftpserver:vsftpd
これはサーバ(FC3)がUTF-8で動いているからです。正確にはWindowsのSJIS以外といったほうが良いかもしれません。
Windwsの日本語ファイル名はSJISですが、それを受け取ったサーバはUTF-8として扱うので文字化けするのです。
こういう問題がいろいろ起こるので、日本語のファイル名やフォルダ名は使わないのが吉です。FTP以外でもこれから悩まされる問題です。
ログをSJISでみればチャント見えるはずです。但し、コマンドでlsしたりすると見えないはずです。
サーバ側でチャントしたければ、クライアントからファイルをアップするときに、サーバ側のUTF-8コードを指定してアップしなければ駄目です。
残念ながらよく使われるFFFTPはUTF-8に対応していないので(ホストの設定の中の文字コードのホストの漢字コードにUTF-8がない。)駄目ですから、対応しているクライアント(GetIt FTP / Filezilla等)を使用するしかないです。
これでサーバ側では正しく表示されますが、そのファイルをFFFTPで見ると文字化けしてしまいます。
個人しか使わないなら一応上記のような対応はできますが・・・。
返信ありがとうございます。
FTPは複数人で使っています。また周りの人間はパソコンにあまり詳しくないので、文字コードが変更されると混乱すると思うので、SJISで統一してきました。サーバへのアクセスはteratermを用いてリモートで行っています。teratermの機能で文字コードを変更できるようですが、そこをSJISに変更しても日本語では表示されませんでした。なんとかSJISのままで運用するヒントなどありましたら教えていただけますか。他のサーバソフトを用いれば大丈夫ということはないでしょうか。よろしくお願いします。
> FTPは複数人で使っています。また周りの人間はパソコンにあまり詳しくないので、文字コードが変更されると混乱すると思うので、SJISで統一してきました。サーバへのアクセスはteratermを用いてリモートで行っています。teratermの機能で文字コードを変更できるようですが、そこをSJISに変更しても日本語では表示されませんでした。なんとかSJISのままで運用するヒントなどありましたら教えていただけますか。他のサーバソフトを用いれば大丈夫ということはないでしょうか。よろしくお願いします。
最近のデストリはみんなUTF-8になってきています。おやじは一切日本語は使わせないようにしてますがどうしてもというなら、見るだけ(ファイル名を指定できない)なら下記のutf-8対応のtera term を使っているという前提で、結果の出力をnkfを-w で通せば見えるはずです。tera termの設定はutf-8のままです。
http://www.vector.co.jp/soft/dl/win95/net/se320973.html
# ls | nkf -w
# tail -n 100 /var/log/proftpd/all.log | nkf -w
因みに、ファイル名は英語でも中身が日本語のファイルにアクセスする場合も文字化けで悩むと思いますが、アクセスユーザのhomeディレクトリに ~/.vimrc というファイルを作成し、中に下記を書いておくとファイルないのコードを自動認識してくれます。
set encodingはサーバのコードです。
set encoding=utf-8
set fileencodings=utf-8,sjis,euc-jp,iso-2022-jp
返信ありがとうございます。
試してみましたが、やはり表示できませんでした。
端末上からはファイルがlsコマンドで日本語で確認できますが、
xferlogを参照しようとすると文字化けしてしまいます。
/home/masa/?????????????????? ??????????????????.txt a _ i r mrtg ftp 0 * c
このように全部”?”の状態で移るので文字コードの問題ではなくて日本語対応の問題なのでしょうか。
ftpdはvsftpdを使っています。
> ftpdはvsftpdを使っています。
あちらでレス付いていますが…
ソース書き換えないと無理でしょうね。
vsftpd内で文字コードの変換を行うような処理を追加するとか…
iconvライブラリとか使うのかな?
システムのロールの取得など、結構大きい変更になりますが。
http://bbs.fedora.jp/read.php?FID=2&TID=2689
# ちなみに、2.0.4がリリースされてますね。
# S-JISでは当然バケてました。
返信ありがとうございます。
早速、暫定的ですがソースを一部コメントアウトして
フィルタ機能を無効化してチェックしてみようと思います。
フィルタ機能を無効化すれば、一応どの文字コードでも
読み込みが可能になって、その後は読み出し側で文字コードを設定
すればよいのかなと思っています。
iconvなどのライブラリは
それを任意の文字コードに変換して表示できるようにするための
ライブラリということですよね。
> フィルタ機能を無効化すれば、一応どの文字コードでも
> 読み込みが可能になって、その後は読み出し側で文字コードを設定
> すればよいのかなと思っています。
一応、そうなると思います。
が、LogWatch等が正常動作してくれるかはまた別問題になると思いますが。
> iconvなどのライブラリは
> それを任意の文字コードに変換して表示できるようにするための
> ライブラリということですよね。
ちゃんと使ったことがないのですが、そういうモノだと認識しています。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/iconv_open.3.html
とか参考になるのではないでしょうか。
具体的な使用例でも見つかればいいんでしょうけど。
# LinuxよりWindowsのプログラミングの方が慣れているので細かいところは不明です。
## patchファイル作って、specファイル書き換えてrpm作った方がパッケージ管理としてはいいと思いますが。
> 返信ありがとうございます。
> 早速、暫定的ですがソースを一部コメントアウトして
> フィルタ機能を無効化してチェックしてみようと思います。
> フィルタ機能を無効化すれば、一応どの文字コードでも
> 読み込みが可能になって、その後は読み出し側で文字コードを設定
> すればよいのかなと思っています。
> iconvなどのライブラリは
> それを任意の文字コードに変換して表示できるようにするための
> ライブラリということですよね。
おやじの思い込みでProFTPDと同じと思っていましたが、vsftpdは駄目ですね。
fedora.jpのBBSでshoさんが言っているように、ここは素直におやじも使っているProFTPDにされたらどうですか?
こちらなら余計な改造なんかしなくても、おやじが言った方法で対応できます。
おやじさん、瀬戸っぷさんありがとうございます。
今まで使っていた、vsftpdを削除した後、ProFTPDをインストールすることで日本語でファイル見ることができました。
こっちの方で運用していくことにします。
どうもありがとうございました。