ウェブサイト検索

Rsync を使用して Linux で新規ファイルまたは変更/変更されたファイルを同期する方法


システム管理者または Linux パワー ユーザーは、ユーザーがローカルおよびリモートでファイルを迅速にコピーまたは同期できる多用途の Linux Rsync ツールに遭遇したことがある、あるいは何度か使用したことがあるかもしれません。これは、バックアップ操作やミラーリングによく使用される優れたツールでもあります。

その顕著な機能と利点には次のようなものがあります。リモート シェルまたはリモート rsync との間でローカルにコピーできるという点で非常に多用途であり、非常に柔軟でもあり、ユーザーはコピーするファイルを任意の数だけ指定できます。

推奨読書: Linux での Rsync コマンドの 10 の実践例

さらに、リンク、デバイス、ファイルまたはディレクトリの所有者、グループ、および権限のコピーが許可されます。また、root 権限なしでの使用や、さらに多くの機能もサポートしています。

Linux の他のファイル複製コマンドと比較した rsync の決定的な違いの 1 つは、リモート更新プロトコルを使用して、ファイルまたはディレクトリの内容の差分のみを転送することです。

したがって、この記事では、Linux でバックアップなどを作成する際に、新規または変更されたファイルやディレクトリの内容のみを同期するために rsync がどのように役立つかを検討します。

まず、rsync を使用する従来の最も単純な形式は次のとおりであることを覚えておく必要があります。

rsync options source destination 

そうは言っても、上記の概念が実際にどのように機能するかを明らかにするために、いくつかの例を見てみましょう。

Rsync を使用してローカルでファイルを同期する

以下のコマンドを使用すると、ドキュメント ディレクトリからローカルの /tmp/documents ディレクトリにファイルをコピーできます。

rsync -av Documents/* /tmp/documents

上記のコマンドのオプションは次のとおりです。

  1. -a – アーカイブ モードを意味します
  2. -v – 詳細を意味し、進行中の操作の詳細を表示します。

デフォルトでは、rsync は新しいファイルまたは変更されたファイルのみをソースから宛先にコピーします。ドキュメント ディレクトリに新しいファイルを追加すると、同じコマンドを実行すると次のようなことが起こります。 2度目:

rsync -av Documents/* /tmp/documents

コマンドの出力からわかるように、新しいファイルのみが宛先ディレクトリにコピーされます。

推奨読書: Rsync を使用して 2 つの Apache Web サーバー/Web サイトを同期する方法

--update または -u オプションを使用すると、rsync が宛先ディレクトリ内のまだ新しいファイルをスキップできます。また、重要なオプションの 1 つである >--dry-run または -n を使用すると、変更を加えずにテスト操作を実行できます。どのファイルをコピーするのかが表示されます。

rsync -aunv Documents/* /tmp/documents

テスト実行を実行した後、-n を削除して実際の操作を実行できます。

rsync -auv Documents/* /tmp/documents

ローカル Linux からリモート Linux へのファイルの同期

以下の例では、ローカル マシンから IP アドレス 10.42.1.5 を持つリモート サーバーにファイルをコピーしています。リモート マシンに存在しないローカル マシン上の新しいファイルのみを同期するには、 --ignore-existing オプションを含めることができます。

rsync -av --ignore-existing Documents/* [email :~/all/

その後、ローカル マシン上で変更された、リモート マシン上の更新または変更されたファイルのみを同期するには、次のようにファイルをコピーする前に予行演習を実行します。

rsync -av --dry-run --update Documents/* [email :~/all/
rsync -av --update Documents/* [email :~/all/

既存のファイルを更新し、宛先に新しいファイルが作成されないようにするには、--existing オプションを利用します。

man rsync ページを実行すると、高度な使用法に役立つ追加のオプションを見つけることができます。前述したように、rsync は非常に強力で多用途の Linux ツールであり、多くのシステム管理者と Linux パワー ユーザーは、それがいかに有利であるかを知っています。

最も重要なことは、ここで取り上げた例についての意見を共有することもできますし、さらに良いことに、この重要なコマンド ライン ツールの使用に関する貴重なヒントを以下のコメント セクションを通じて提供していただくこともできます。