rsyncで使用される増分転送アルゴリズムは、ソースファイル(サブファイルなど)の一部を転送しますか?

rsyncで使用される増分転送アルゴリズムは、ソースファイル(サブファイルなど)の一部を転送しますか?

rsyncは、デルタ転送アルゴリズムを使用してファイルを転送すると言います。

ソースファイルと同じファイル名を持つ既存のターゲットファイルの場合、

  1. 増分転送アルゴリズムを使用するかどうか

    • rsyncがソースファイルをターゲットに転送することを決定した後にのみ、または
    • rsyncがソースファイルをターゲットに転送するかどうかを決定するとき
  2. rsyncがソースファイルをターゲットファイルに転送することを決定した場合、

    デルタ転送アルゴリズムは、ソースファイルとターゲットファイルの差を転送しますか?

    デルタ転送アルゴリズムは、最初に2つのファイル間のパッチファイルを計算し、パッチファイルをターゲットに転送し、パッチファイルを既存のターゲットファイルに適用して「サブファイル」レベルで動作しますか?ソースファイルの同じコピー?

    もしそうなら、rsyncはソースファイルとターゲットファイルの間のパッチファイルを計算するためにソースファイルをターゲットに転送する必要がありますか?もしそうなら、これは完全なソースファイル転送を防ぐための増分転送アルゴリズムの目的と矛盾しますか?

ありがとうございます。

答え1

rsyncがソースファイルをターゲットに転送することを決定した後にのみ

はい。

rsyncがソースファイルをターゲットに転送するかどうかを決定するとき

習慣。デルタアルゴリズムが起動すると、rsyncファイルの更新にのみ専念します。

デルタ転送アルゴリズムは、ソースファイルとターゲットファイルの差を転送しますか?

基本的にそうです。このオプションを使用して無効にすることができます--whole-file。デルタ伝送アルゴリズムは以下を送信します。いいえdiff実際には2つのファイルの1つです。

デルタ転送アルゴリズムは、最初に2つのファイル間のパッチファイルを計算し、パッチファイルをターゲットに転送し、パッチファイルを既存のターゲットファイルに適用して「サブファイル」レベルで動作しますか?ソースファイルの同じコピー?

いいえ。rsync送信者がファイルのコピー先バージョンのコピーを持っているとは見なされないからです。

rsyncローリングチェックサムを使用すると、ファイル全体を任意の方向に転送せずに、ファイルの一致する部分を確認できます。もちろん、一致するものがない場合は、ファイル全体を転送する必要があります。

関連情報