バックアップツールを使用する場合duplicity
、私は気づいた。ソースからファイルの名前を変更すると、データはネットワーク経由でターゲットに転送されます。、ちょっと残念です。内部duplicity
使用のためにlibrsync
見てみることにしましたrsync
。
これ建築wikiページ状態:
ハンドルの名前変更
移動または名前変更されたファイルは検出され、2回保存または転送されません。これは通常、ファイルまたはそのブロックのチェックサムを計算することを意味します。この機能が不足しているアプリケーションは、次の機能を組み合わせて補完することができます。hsync
AUR、同期名変更専用です。
rsync: ハンドルの名前変更: いいえ
これが本当に意味するのは、使用時にrsync
10GBがネットワーク経由で宛先に再送信されるのを防ぐ方法はありません。、ソースマシンの名前を次のように変更すると/test/10GBfile
?/test/10GBfile_newname
の長い人気を考えると、rsync
これを処理するより良い方法はありますか?
ベストアンサー1
rsync
実行時以外は状態を維持しないため、名前の変更を追跡するメカニズムはありません。元のマシンでに名前を変更すると、デフォルトでは/test/10GBfile
削除されたアイテムと生成されたアイテムのみが表示されます。/test/10GBfile_newname
rsync
10GBfile
10GBfile_newname
パラメータ--fuzzy
()は、ターゲット上の潜在的なデータソース-y
を識別するのに役立ち、ファイルコピーの代わりにネットワークコピーを防ぐことができます。ただし、(ほとんど)ファイルの一致のみを考慮できます。10GBfile
10GBfile_newname
同じディレクトリにしたがって、あなたの例は一致しますが、名前を変更/test/10GBfile
すると/test/otherdir/10GBfile_newname
そうではありません。
また、マニュアル(man rsync
)は、使用する予定の場合、または使用する前に潜在的な一致が削除されないように使用する--delete
必要があることを示唆しています。--delay-updates
--delete-after
--fuzzy
はい
# Prepare an uncompressible 100MB file
mkdir -p /tmp/test
dd bs=1M count=100 iflag=fullblock if=/dev/urandom >/tmp/test/file1
# Normal first-time copy
rsync -av --fuzzy --delete-after /tmp/test/ remote:/tmp/test
# Skip copy because unchanged
rsync -av --fuzzy --delete-after /tmp/test/ remote:/tmp/test
# Rename file (per your example)
mv /tmp/test/file1 /tmp/test/file2
# Fast copy because fuzzy match
rsync -av --fuzzy --delete-after /tmp/test/ remote:/tmp/test
進行状況のブロック固有の詳細を表示するには、2つの-v
フラグ(たとえば)を追加します。rsync -avvv …