Messages in cipher reflected in the looking glass

http://blogs.sun.com/thaniwa/date/20081130 2008年 11月 30日 日曜日

(JA) moving files with rsync

古い linux 環境から、新しい linux (CentOS 5.2) に ファイルの移動を行いたかったので、あれこれ調べていたのですが、 rsync を使ってみました。メモがわりに書いておきます。

ファイルのコピーなら ftp や scp など色々あるのですが、 古い linux 環境には数は比較的少ないのですが、EUC-JPのファイルやディレクトリが存在しています。
新しいlinux環境がUTF-8がメインになっており、そろそろ UTF-8 への移行を考えていたため、 ファイルの文字コード変換が必要になります。
そこで、rsync を調べてみたところ、version 3以降に --iconv でファイル名の文字コード変換が行えるようなので、これを活用してみました。

CentOS 5.2 に入っている rsync のバージョンは 2.6.8 のため、対応していません。 ということで、まず rsync 3.0.4 をインストール。

# tar xzvf rsync-3.0.4.tar.gz
# cd rsync-3.0.4
# ./configure --prefix=/usr/local
# make
# make install

とお約束の作業で入ります。面倒だったので rpm 化はおこないませんでした。^-^;
リモートからのコピーの場合、

$ /usr/local/bin/rsync -a --iconv=EUC-JP,UTF8 user@xxx.xxx.xxx.xxx/* /hogehoge

という感じなんですが、古い方もちゃんと入っている必要があるのか、エラーで停止。
古い側もちゃんと文字コード対応が必要なんでしょうが、いじるのが面倒だったので、 古い linux 側の /etc/exports を変更後、/etc/init.d/nfsd restart でリスタートし、 /mnt としてマウント。その後、rsync で文字列変換コピーを行うという感じで処理してみました。^-^;

$ /usr/local/bin/rsync -a --iconv=EUC-JP,UTF8 /mnt/* .

とりあえず、ちゃんとコピーできたみたいです。

投稿されたコメント:

コメント
コメントは無効になっています。