rsyncはデータを送信しなくてもチェックサムを計算しますか?

rsyncはデータを送信しなくてもチェックサムを計算しますか?

からman rsync

- 既存の

飛び越える新しいファイルの作成受信機で(強調)

それで私は確かな成功を収めました。

rsync --existing -rtvhP "remote.machine:/photos/*" /photos

これにより、リモートコンピュータの元の写真と一致するように、ローカルコンピュータで変更されたすべての写真をリセットする必要があります。を使用すると、-rtフォルダを介して再帰し、タイムスタンプがリセットされますが、chowning、chmodding、またはリンクのコピーを気にしないでください。これが -a が実行するアクションです。 )しかし、他のファイルは転送しないでください。変更されていないファイルではなく、何十年も使用されている他のすべてのフォルダやファイルを転送しないでください。

データを変更しましたが、ファイルサイズ/変更タイムスタンプ(rsyncがファイル/フォルダを送信する必要があるかどうかを判断するためにデフォルトで使用されます)を変更しなかった可能性のある変更を識別するために、以下を追加すると思いました。-c(正しいチェックサム)。

rsync --existing -crtvhP "remote.machine:/photos/*" /photos

私が気づいたのは、ファイル/フォルダが自分のローカル/写真に存在しない場合でも、rsyncが「何もしませんでした」を返すまでに時間がかかることです。私は、これが--existingファイルが存在する場合は、実行した操作を続行する前に返された結果(「ファイルが存在しないため何もしない」)を使用しないrsyncのバグだと思います。この場合、何千ものファイルがチェックサム処理されて送信される必要はありません。

ちなみに、私は隠されたdot.folders/dot.filesではなく、見えるファイルだけを転送したいので、photos/*代わりに使用しています。photos/

これが重要かどうかはわかりませんが、他のUNIXベースのサーバーと通信しているローカルMacのzshでrsyncを実行していますが、これは同種のUbuntuシステム間でも発生することを確認しました。

これが実際にrsyncのバグであれば。これを報告するのに最適な場所がどこにあるかを教えてください。

アドバイス、提案、回答をありがとうございます。

ベストアンサー1

この例では、rsyncバージョン2.6.9プロトコルバージョン29を使用しています。

ご提案いただいた@Freddyに感謝します。この-cフラグはrsyncよりも優先されるため、--existing不要な(IMHO)操作をたくさん実行しているようです。ここに私のテストケースがあります。新しく作成された空のディレクトリについては何もコピーする必要はなく、不要な複数の項目をチェックサムに気にしないと思いましたが、rsyncに他のデフォルト設定があるようです(例:チェックサムチェックサム)。それから使用するかどうかを決定してください。 ) ́\(T)

新しい空のフォルダ「test」を作成し、組み込みシェルを使用してtime13104枚の写真と新しいフォルダの0枚の写真を同期させる各テストケースでrsyncが動作した時間を追跡しました。

% mkdir test
% time rsync -rtvhP --existing photos/* test
building file list ...
13104 files to consider
sent 710.56K bytes  received 20 bytes  1.42Mbytes/sec
total size is 912.33G  speedup is 1283921.48
rsync -rtvhP --existing photos/* test  0.03s user 0.09s system 37% cpu 0.327 total

% time rsync -rtvhPc --existing photos/* test
building file list ...
13104 files to consider
sent 919.66K bytes  received 20 bytes  134.90 bytes/sec
total size is 912.33G  speedup is 992002.92
rsync -rtvhPc --existing photos/* test      1201.16s user 210.36s system 20% cpu 1:53:37.01 total

そのため、チェックサムなしでは0.327秒かかりましたが、コピーする必要のないファイルをチェックサムするのに約2時間かかりました。これはrsyncが動作する方法ではありませんが、これがどのように機能するかを知ることをお勧めします。 :-)

おすすめ記事