【メモ】 サーバ間のファイルコピー(rsync+ssh)

「サーバ間のファイルコピーってどうやるんだろう…」

と言うのが今まで結構疑問で、
FTPで一旦ダウンロードしてから別のサーバにアップロードしてたこともあったんですが…
無知というのは恐ろしいものでございます。

rsync使ったら一瞬じゃないですか。
がーん。

参考サイト

rsync + ssh でファイルの同期をとる | レンタルサーバー・自宅サーバー設定・構築のヒント



というわけで、さくらインターネット・プレミアムからさくらのVPSへWikiディレクトリをサーバ間コピー。
Wikiディレクトリは地味にファイル数が多いため、FTP介すと結構大変なのですね。

rsync使えばこれだけ。時間も1秒以下。

rsync -auz --delete --exclude=".svn" -e "ssh -p 22222" /home/user/www/wiki user@xxx.xxx.xxx.xxx:/var/lib/www


使っているオプションはこんな感じ。
-a
アーカイブモード(-rlptgoDオプション)
-u
アップデートのみ許可(上書き禁止)
-z
圧縮して転送
–delete
送信側にないファイルを削除
–exclude=”.svn”
「–exclude」は特定のパターンに当てはまるファイルをコピーしない設定。この場合、subversionのバージョンファイルがアップされない。チェックアウトすれば…という話もあるけど、レポジトリを作り直したかったので。
-e “ssh -p 22222”
ポートを指定した上でssh通信

これを実行するとこんな感じのメッセージが出るのでyes。

The authenticity of host '[xxx.xxx.xxx.xxx]:22222 ([xxx.xxx.xxx.xxx]:22222)' can't be established.
DSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?

known hostsに追加されたあと、送信先サーバのパスワードを聞かれるので入力。

Warning: Permanently added '[xxx.xxx.xxx.xxx]:22222' (DSA) to the list of known hosts.
user@xxx.xxx.xxx.xxx's password:

これで完了。



なんという簡単な…ビックリだ。

サーバそのもののコピーにも使われてるみたいだけど、それも納得。
知って良かった。