rsyncコマンドを使用してデータを同期する方法(基本編)

[概  要]

rsync コマンドを使用すると、ネットワーク経由で複数マシンのデータを同期させることができます。

rsync コマンドは毎回ファイルを丸ごとコピーするのではなく、新旧ファイル間の差分をコピーしますので 初回以降は高速にデータの同期を取ることができます。

本ドキュメントでは rsync コマンドの基本的な使用方法と主なオプションについて説明します。

 

[注意事項]
本ドキュメントは、各ソフトウェア開発元の情報およびマニュアル等を元にした参考情報です。
本ドキュメントの内容は、予告なしに変更される場合があります。

 

本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、全ての環境での動作を保証するものではありません。
本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。

 

[確認環境]

Asianux Server 3 (x86)

rsync-2.6.8-3.1

 

[前提条件]

本ドキュメントでは、以下の条件下で確認を行っています。

(sshを使用していますが、cron等によるrsyncの自動実行を考慮し、パスワードおよびパスフレーズ入力を省略した接続を前提としています。)

 

・転送先のマシンに対して、DNSによる名前解決が可能であること。
・ホストベース認証または公開鍵認証による、パスフレーズ入力を省略したssh接続が可能であること。

 

[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 転送の際にファイルを圧縮します。

 

[更新履歴]
2007310日 新規作成