rsyncコマンドを使用してデータを同期する方法(基本編)
[概 要]
rsync コマンドを使用すると、ネットワーク経由で複数マシンのデータを同期させることができます。
rsync コマンドは、毎回ファイルを丸ごとコピーするのではなく、新旧ファイル間の差分をコピーしますので 初回以降は高速にデータの同期を取ることができます。
本ドキュメントでは rsync コマンドの基本的な使用方法と主なオプションについて説明します。
・Asianux Server 3 (x86版)
[前提条件]
本ドキュメントでは、以下の条件下で確認を行っています。
(sshを使用していますが、cron等によるrsyncの自動実行を考慮し、パスワードおよびパスフレーズ入力を省略した接続を前提としています。)
本ドキュメントの[基本的な使用方法]では、以下のような構成で実施した一例を提示しています。
rsyncコマンドの基本的な構文は以下のとおりです。
rsync [options] source destination
第1引数(source)には、同期したい(同期元)ファイルまたはディレクトリを指定します。
第2引数(destination)には、同期先のマシン名とファイルまたはディレクトリを指定します。
マシン名とファイルまたはディレクトリの間は「:」(コロン)で区切ります。
以下に、ログインしているマシン(src.example.com)と dst.example.comで同期を取る例を示します。(以下のコマンドはsrc.example.com側で実行します)
例1) 同期対象をファイル「/home/user1/.bashrc」 とする場合
$ rsync -auvz /home/user1/.bashrc dst.example.com:/home/user1/.bashrc
例2) 同期対象をディレクトリ「/home/user1/mydoc 」とする場合。
$ rsync -auvz /home/user1/mydoc/ dst.example.com:/home/user1/mydoc
ディレクトリの場合第1引数となる同期元のディレクトリ名の最後に 「/」をつけないと、1段階深い階層で同期されてしまうので注意が必要です。
-a 使用用途が高いオプション郡(-rlptgoD)をまとめて指定するオプションです。
再帰的かつ、シンボリックリンクやグループIDなどを保存して同期します。
-u 同期先のファイルが同期元より新しい場合は同期せずにスキップします。
-v 進行状況を詳細に表示します。
-z 転送の際にファイルを圧縮します。