通常、rsync
ソース側と宛先側でファイルのサイズと時間が同じ場合、ファイルをスキップします。これはrsync
、ソース側と宛先側で同じ可能性が非常に高いファイルの内容を調べる必要がないため、通常は良いアイデアであるヒューリスティックです。
--ignore-times
rsync
ファイルの時間とサイズのヒューリスティックをオフにするように指示します。したがって、すべてのファイルをソースから宛先に無条件に転送します。オプションが指定さrsync
れたかどうかに応じて、デルタ転送アルゴリズムを使用するか、すべてのファイル全体を単に送信する必要があるため、ソース側のすべてのファイルの読み取りに進み--whole-file
ます。
--checksum
また、ファイルの時間とサイズのヒューリスティックも変更しますが、ここでは時間を無視してサイズのみを調べます。サイズが異なるソース側と宛先側のファイルは、明らかに異なるため転送されます。同じサイズのファイルはチェックサムされ(rsync
バージョン3.0.0+のMD5 、または以前のバージョンのMD4)、合計が異なることが判明したファイルも転送されます。
ソース側と宛先側がほとんど同じ--checksum
場合、ほとんどのファイルが両側でチェックサムされます。これには長い時間がかかる可能性がありますが、結果は、特にデルタ転送アルゴリズムが使用されている場合、実際には最小のデータが実際に回線上で転送されることです。もちろん、これは非常に遅いネットワークや非常に速いCPUを持っている場合にのみ勝利です。
--ignore-times
一方、ネットワークを介してより多くのデータを送信し、すべてのソースファイルを読み取りますが、少なくとも、ソースおよび宛先CPUで多くの暗号強度の高いハッシュサムを計算する追加の負荷を課すことはありません。このオプション--checksum
は、ネットワークが高速である場合や、CPUが比較的遅い場合よりもパフォーマンスが向上すると予想されます。
私は私が今までにのみ使用と思います--checksum
か、--ignore-times
私はそれはいくつかのファイルの内容が破損したことが疑われた宛先にファイルを転送している場合、しかし、その修正時刻は変更されませんでした。おそらく他のユースケースもありますが、私はどちらのオプションを使用する他の正当な理由を本当に考えることはできません。
--checksum
役立つと思いました--itemize-changes
。現在の毎日/毎週の更新が完了した後、バックアップスクリプトはこの方法で完全に比較することがあります。--itemize-changes
予期しないものが出力された場合、緊急とマークされた電子メールがドロップされるため、調査する必要がある潜在的な問題があることがわかります。