13

rsyncを使用すると、rsyncが完了したすべてのファイルをコピーしないことがあります。以下は私が使用するコードです。すべてのファイルがコピーされたかどうかを確認するために rsync の後にチェックサムまたはチェックを行う方法ですか。そうでない場合は、すべてのファイルがコピーされるまで再試行します。

TEMP="/home/user/temp"
OPTS="-rav -h"

rsync $OPTS --stats user@example.com:/home/user/Local $TEMP
4

3 に答える 3

21

uʍop ǝpısdn の回答で示唆されているように、rsync -cまたはrsync --checksum必要なことを行うことができます。

-c, --checksum: 変更時間とサイズではなく、チェックサムに基づいてスキップします

これにより、送信者は 128 ビットの MD4 チェックサムを使用してすべての通常のファイルのチェックサムを強制されます。これは、利用可能なすべてのファイルのリストを作成する最初のファイル システム スキャン中に行われます。次に、受信者は、更新する必要があるファイルを決定するために、各ファイルのバージョンのチェックサムを計算します (ファイルが存在し、送信側のファイルと同じサイズの場合)。サイズが変更されたファイルまたはチェックサムが変更されたファイルが選択されます。移行。ファイルの転送中に発生する自動チェックサム検証に加えて、接続の両側ですべてのファイルのこのファイル全体のチェックサムが発生するため、このオプションは非常に遅くなる可能性があります。

rsync は、ファイル全体のチェックサムをチェックすることによって、転送された各ファイルが受信側で正しく再構築されたことを常に検証しますが、転送後の自動検証は、このオプションの転送前の「このファイルは必要ですか?更新しますか?」小切手。

これが遅いという懸念は、最近ではおそらく関係ありません。これは、変更時間に依存できない、または依存したくない場合に適しているようです。

于 2013-10-23T11:39:16.150 に答える