EUC-JP のサーバから UTF-8 のサーバへ移行する

今回のファイルサーバの移行で、EUC-JP をやめて UTF-8 にしようと思っていましたのでその方法を。

最初は新旧の samba で変換してしまうのが何かと楽だろうと考え、mount_smbfs -E と rsync でいけるかと思ったのですが何故か途中で止まってしまいます。
まぁ rsync なので途中から再開するからいいかーと思いきや、どうも毎回コピーされてしまうファイルが結構あるようです。
そしてまた同じようなところで止まってしまって使い物にならず。

rsync の比較方法の厳密度を下げるという手もありますが、信頼性の面で不安が出てるのでしばらく頭を悩ませていました。
しかし rsync には iconv のオプションが有る事に気づいたので使ってみる事に。
特に古い方のマシンは SSH の暗号化が重荷になりそうだったので、同一セグメントというかお隣同士という事で負荷の低い暗号方式にして転送速度を最大にしました。

結果が以下のような感じです。
(新サーバから旧サーバに取りに行く形です)

newserver# rsync -av -e 'ssh -c arcfour' --iconv=UTF-8,EUC-JP --progress user@oldserver:/path/to/share/ /path/to/share/

ちなみに –iconv オプションは変換の前後ではなく、ローカル,リモートです。

SSH を使った rsync の負荷を押さえる方法としては、rsyncの負荷を抑える方法 – 理想未来はどうなった?を参考にさせていただきました。

FreeBSD,technical

Posted by yokky