膨大なコンテンツを持つサイトの引越作業を頼まれてやっているが、新旧サーバが遠隔地にあり、丸ごとコピーに異様に時間がかかって参った。lftpを使っていたが、丸1日かけても終わらない。ということで、rsyncならいいのではと、使えるようにしたら、かなりパフォーマンスが改善した。以下、手順。
- コピー元のサーバにsshでログイン
- ホームディレクトリに.sshディレクトリを作成
- cd .ssh して ssh-keygen -t rsa で id_rsa と id_rsa.pub を生成。パスフレーズは設定せず。
- コピー先のサーバへsshでログイン
- ホームディレクトリに.sshディレクトリを作成
- cd .ssh して id_rsa.pubの中身を authorized_keys として保存(またはappend)
- コピー元サーバから ssh xxx.xxx.xxx.xxx(コピー先サーバのアドレス) として、接続してみる。 ※ここで、接続できないのに気づき、コピー先のサーバのファイアウォールポリシーを追加してもらった。
- rsync -rlptzv -e ssh /path/to/dir/ xxx.xxx.xxx.xxx:/path/to/dir/ でばっちり動作。 ※最初のパスの最後に"/"を付けないと、コピー先のパスの位置にそのディレクトリ自身を作ってしまうので注意。
サーバのお守りは普段していないのでたまにこういう作業が出てくるとあれこれ忘れてしまっていて困る。ドキュメントに残せばよいのだがなかなか。数ヶ月未来の自分は他人である。