運用しているサーバーのコンテンツバックアップやサーバー移設時のコンテンツコピーなど、漏れなく確実にファイル同期(バックアップ)するにはrsyncを使用します。
このコンテンツのバックアップと別記事で紹介したMySQLデータベースのリモートコピーを実行することで最低限の手間で、WordpressやMovableTypeの引越ができます。
今回の環境は、source-hostにあるコンテンツを全く同じ状態でtarget-hostにコピーする方法です。
ディレクトリの構成が同じ場合には、rsyncによるファイル同期とデータベースのコピーでサイトのミラーを作成することもできます。
前提条件は次の通りです。
- source-hostにrsyncがインストールされていること
- target-hostにrsyncがインストールされていること
- target-hostからsource-hostにssh接続できること
ファイル同期(rsync)の実行
rsyncを実行するには、次の書式で指定します。
rsync [オプション] 同期元 同期先
よく使用するオプション
rsyncでファイル同期をする場合に、よく使用するオプションは次の通りです。
オプション | 内容 |
-a | アーカイブモード。rsyncの色々なオプションでファイル同期の基本となる 「-rlptgoD -no-H -no-A -no-X」オプションを まとめて指定する |
-v | ログと動作状況を表示 |
-z | データを圧縮して転送 |
-u | 追加・変更されたデータのみコピーする |
–delete | 同期元にないファイルを同期先から削除する |
–exclude | ファイル同期から除外したいデータを指定する |
初回の同期
今回は target-hostからsource-hostの特定ディレクトリをファイル同期します。
最初のファイル同期では、以下のコマンドを実行します。
rsync -avz source-host:/var/www/html/ /var/www/html/
同じディレクトリ構成でファイル同期することが目的ですので、ディレクトリの指定で最後の「/」を忘れないように注意が必要です。
2回目以降の同期
最初に全てのファイルを同期したら2回目以降は -u と –delete をつけて更新されたデータの同期と削除されたファイルを同期先で削除することができます。
rsync -avzu --delete source-host:/var/www/html/ /var/www/html/