自動スナップショットを作成するにはどうすればいいですか?s3ql? duplicity と同様の動作を実現したいと考えています。バックアップをサーバーにプッシュすると、現在のタイムスタンプを持つ新しい増分スナップショットが作成されます。次に、特定のバックアップ バージョン (特定の日付のスナップショットなど) を参照して復元できるようにしたいと考えています。
答え1
見てみましょう公式文書。
その文書からの抜粋
ご了承ください:
レプリケーション後、ソース ディレクトリとターゲット ディレクトリはどちらも完全に通常のディレクトリのままです。スナップショットと見なすことも、その逆も可能です。ただし、s3qlcp の最も一般的な使用法は、同じソース ディレクトリ (たとえば、documents) を別のターゲット ディレクトリに定期的に複製することです。たとえば、月次レプリケーションの場合、ターゲット ディレクトリの名前は通常、1 月のレプリケーションの場合は documents_January、2 月のレプリケーションの場合は documents_February などになります。この場合、ターゲット ディレクトリはソース ディレクトリのスナップショットと見なす必要があることは明らかです。
まったく同じ効果は、cp -a のような通常のコピー プログラムでも実現できます。ただし、この手順は、cp がすべてのファイルを完全に読み取ってから宛先フォルダーに書き込む必要があるため (そのため、S3QL はバックエンドからネットワーク経由ですべてのデータを取得する必要がある)、桁違いに遅くなります。
別の抜粋
スナップショットとハードリンク
S3QL のスナップショット サポートは、rsync や storeBackup などのプログラムが提供するハードリンク機能にヒントを得ています。これらのプログラムは、バックアップ内に同一のファイルが既に存在する場合、ファイルをコピーする代わりにハードリンクを作成できます。ただし、ハードリンクを使用すると、次の 2 つの大きな欠点があります。
バックアップと復元は、常にハードリンクを処理する特別なプログラムを使用して行う必要があります。バックアップは他のプログラムによって変更されてはいけません (他のハードリンクされたファイルに誤って影響を与える変更が行われる可能性があります)。すでにハードリンクされているファイルの処理には特別な注意が必要です (復元プログラムは、ハードリンクがバックアップ プログラムによって安全な領域に導入されただけではないことを認識する必要があります)。