C++ で実行してファイルをブロックに分割し、SQLITE3 データベースで md5 ハッシュを使用してブロックを追跡するオフサイト バックアップ ソリューションがあります。そして、ブロックをデータベースとともにリモート サイトに転送します。
したがって、復元を実行したい場合は、SQLITE3 データベースにクエリを実行し、それに応じてブロックを復元します。
最初のバックアップが実行されると、base_backup という大きなテーブルが作成されます。以降のすべてのファイル変更または新しいファイルは、新しいテーブルに新しいレコードとして追加されます。復元したい場合は、base_backup テーブルとすべての相違点を照会して、ファイルを復元します。
バックアップの実行方法として、指定されたフォルダー内のすべてのファイルをスキャンしてアーカイブ ビットを探します。アーカイブ ビットがクリアされている場合は、データベースにレコードがまだ存在しないかどうかを確認し、バックアップするかどうかを決定します。
私の質問になりますが、ファイルがローカル コンピューターで削除された場合、それを追跡し、それに応じてオフサイト バックアップを更新するにはどうすればよいですか? 復元を行うときに、すべてのガベージ ファイルを復元したくないからです。ファイルがフォルダから削除されたかどうかを知る方法はありますか? 時間がかかりすぎるため、データベースから検証チェックを実行したくありません。