基本的に、移動または名前変更されたファイルを検出できるツールまたはスクリプトが存在するかどうかを検索して、名前変更または移動されたファイルのリストを取得し、帯域幅を節約するためにネットワークの反対側で同じ操作を適用できます。
基本的にディスクストレージは安価ですが、帯域幅はそうではなく、問題はファイルが頻繁に再編成されるか、より良いディレクトリ構造に移動されるため、rsyncを使用してバックアップを行うと、rsyncが名前の変更や反対側に同じファイルがあるにもかかわらず、ファイルを移動し、ネットワークを介して再送信します。
したがって、すべてのファイルの場所とその名前を記録できるスクリプトまたはツールが存在するかどうか疑問に思っています。バックアップの直前に、移動または名前変更されたファイルを再スキャンして検出し、そのリストを取得して再適用できます反対側の移動/名前変更操作。
ファイルの「一般的な」機能のリストは次のとおりです。
- 大きな不変ファイル
- 名前を変更したり、移動したりできます
[編集:]これらはすべて良い答えであり、結局私がやることはすべての答えを見ることであり、これに対処するためのコードを書くつもりです。基本的に私が今考えている/取り組んでいるのは:
- 「最初の」スキャンにAIDEのようなものを使用し、ファイルが変更されることはないため、ファイルのチェックサムを保持できるようにすることで、破損の検出に役立ちます。
- これらのファイル/ディレクトリを監視するinotifyデーモンを作成し、名前の変更とファイルのログファイルへの移動に関する変更を記録します。
- inotifyがファイルシステムに何かが発生したことを記録できないエッジケースがいくつかあるため、最後のバックアップよりも後の変更時刻を持つファイルをファイルシステムで検索するためにfindを使用する最後のステップがあります。
これにはいくつかの利点があります。
- 一部のメディアが破損していないことを確認/確認できるようにするためのAIDEのチェックサム/など
- Inotifyはリソース使用量を低く抑え、ファイルシステムを何度も再スキャンする必要がありません
- rsyncにパッチを当てる必要はありません。パッチを適用する必要がある場合でも、パッチの適用を避けて負担を軽減することをお勧めします(更新があるたびにパッチを再適用する必要はありません)。
- 私は以前にUnisonを使用しましたが、本当に素晴らしいのですが、Unisonはファイルシステム上にコピーを保持し、その「アーカイブ」ファイルはかなり大きくなる可能性があると誓うことができましたか?