web-dev-qa-db-ja.com

RSYNCは増分バックアップをどのように実行しますか

rsyncは、どのファイルが変更され、どのファイルが変更されていないかをどのようにして知るのですか?データはファイルのどこかに記録されますか?

増分バックアップを行いたいのですが、最初にすべてのファイルが転送されます。

したがって、私の主な質問は、最初のファイルをFTP経由でアップロードし、rsync経由ではない場合です。 Will rsyncは、これらの既存のファイルをスキップするか、最初の実行ですべてをアップロードします。

14
John

Rsyncには、何を見て何を宛先にコピーするかを制御するいくつかのフラグがあります。ほとんどの場合、「-a」フラグが使用されます。これは「アーカイブ」フラグです。これがおそらく必要なものです。 「-av」フラグを指定してrsyncを実行し、バックアップするデータに対して最初の実行を行わせます。次回の実行時には、ファイルのブロックチェックサムが実行され、既存のファイルで変更された部分のみがコピーされ、新しいファイルがコピーされ、存在しないファイルが削除されます。次の「-a」オプションセクションを確認します。

http://linux.die.net/man/1/rsync

最初の実行はBandWidthを集中的に使用し、次の実行はほとんどの場合プロセッサを集中的に使用しますが、最初の実行と比較して使用する帯域幅はほとんどありません。データセットに多くのチャーンがない限り。

Rsyncは、ソースまたは宛先ディレクトリでファイルを取得する方法を気にしません。フラグを追加して別のことをしない限り、2つのディレクトリ間で変更をコピーするだけです。

変更内容をログに記録する場合は、「-log-file」オプションを使用できます。全体として、このようなものはあなたが望むもののように聞こえます:

rsync -av --log-file=/var/log/rsync.log -e "ssh -l backup-user" backup-user@source-machine::module /nas01/backups
12
Ali Chehab

rsyncは「増分」を行わず、「差分」に似ています。 changes(以前の実行に関するある程度の知識があると想定)は転送されませんdifferencesを転送します(ソースとターゲットファイルを比較することにより)

プロセスの簡素化:

  • 最初にファイルサイズ、作成/変更日、フラグをチェックします...すべて同じである場合は、ファイルをスキップします。
  • ターゲットにその名前のファイルがない場合は、単にファイル全体をコピーします。
  • ターゲットにファイルがある場合は、ファイルの2KBごとにチェックサムを計算し、送信者に転送します。
  • 送信者は、Originファイルの内容を比較し、ターゲットと比較して、一致するデータへの参照とともに、そこにまだないデータを転送します。これにより、ターゲットは古いターゲットの一部と新しいブロックを使用してファイル全体を再構築できます。
9
Javier

rsyncはデータをログに記録せず、ファイル変更のタイムスタンプをチェックしてからコンテンツをチェックします。最初にFTPでアップロードした場合は問題ありません。rsyncはすべてのデータを再送信するのではなく、すべてのコンテンツを通過してタイムスタンプを修正します。しかし、再び大きな送金はありません。

5
pQd

たぶん私は知識が豊富ですが、増分バックアップは最初に完全バックアップがあることを意味します。次に、そのバックアップ以降に変更されたファイルのバックアップがあります。次に、前のバックアップ以降に変更されたバックアップの別のバックアップがあるため、完全バックアップと、それ以降のすべての増分バックアップが必要です。

したがって、アーカイブモードを使用するだけでは、増分バックアップではありませんファイルが変更される前にファイルを取得するために時間を遡ることができないことを意味するため、違いは重要だと思います

真の増分バックアップを実行する場合は、--backup-dirなどのオプションを使用します。例があります here

5
Kyle Brandt

本当の質問が「rsync経由で増分バックアップを実行したい」である場合、いくつかのオプションが利用可能です。私はダーヴィッシュを使います:

http://www.dirvish.org/

スナップショットが得られるため、復元は簡単です。ハードリンクを使用して完全なスナップショットを提供すると同時に、ファイルが同一である場所のスペースを節約します。内部的には、rsyncの--link-destオプションを使用します。

--link-dest=DIR         hardlink to files in DIR when unchanged

Rsyncを使用しているため、変更が非常に小さいネットワーク帯域幅(したがって時間)も節約できます。 tarして、ローカルに作成されたdirvishイメージを最初にスニーカーネットする場合も、ファイルが多く、低速リンクがある場合に機能します。

0
Alphax