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


14

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

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

したがって、私の主な質問は、初期ファイルをFTPではなくFTP経由でアップロードするかどうかrsyncです。ウィルはrsyncまだ、これらの既存のファイルをスキップするか、それが最初の実行上のすべてをアップロードします。

回答:


12

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

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

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

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

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

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

9

rsyncは「増分」ではなく、「差分」に似ています。変更を転送することはなく(以前の実行に関するある程度の知識を前提としています)、差異を転送します(ソースとターゲットファイルを比較することにより)

プロセスの簡素化:

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

5

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


5

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

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

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


1
増分バックアップとミラーリングを区別するために+1(rsyncがデフォルトで行うことです)。
-sleske

ああそう!ミラーリングとは、私が把握していた言葉でした、良い電話:
カイルブラント

0

本当の質問が「rsync経由で増分バックアップを行いたい」である場合、いくつかのオプションがあります。私はDirvishを使用しています:

http://www.dirvish.org/

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

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

rsyncを使用するため、変更が非常に小さいネットワーク帯域幅(および時間)も節約されます。また、大量のファイルと低速リンクがある場合、最初にローカルで作成されたdirvishイメージをtarおよびsneakernetする場合にも機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.