バックアップ履歴を維持する方法は?

バックアップ履歴を維持する方法は?

私の意図は、サーバー上の特定のハードドライブの毎日の「スナップショット」を作成することです。今日、3日前、5日前、10日前などのスナップショットが維持され、循環するように自動的に確認する方法は?私は二重性というツールを見つけましたが、それを達成するためにそれを使用する方法が見つかりませんでした。 bashシェルスクリプトを使用する必要がありますか?インスピレーションを受けられるケースはありますか?

システムが Debian を実行しています。

ベストアンサー1

Duplicityは、スナップショットを作成しますが直接読み取ることができる形式ではなく、圧縮されたアーカイブ形式です。

スナップショットを作成する方法はいくつかあります。次のようないくつかの高度なファイルシステムZFSそしてBTRFS一部のディスク層などの組み込み機能として使用します。左心室容積

共通ファイルシステムでは、基本的な技術は、スナップショットが作成されるディレクトリツリーを再生成することです。ハードリンクファイルをコピーするのではなく、各ファイルに保存します。ファイルが削除され、新しいバージョンと置き換えられると、スナップショットは古いバージョンを維持します。一部のアプリケーションはファイルを内部で変更するため、同じファイルであるため、スナップショットバージョンも変更されます。これはハードリンクベースのソリューションの本質的な問題です。

直接ハードリンクのバリエーションは、ファイルがバックアップされたときに常にコピーを作成することです。ただし、最後のバックアップ以降にファイルが変更されていない場合は、新しいコピーを作成するのではなく、古いバックアップへのハードリンクを作成します。以前の方法とは異なり、これは以前のバックアップのファイルを変更して履歴を上書きする危険性がないため、バックアップに適しています。

同期オプション--link-destスナップ写真これらのスナップショットを作成する最も一般的なツールです。 Rsnapshotはより高いレベルのツールです。内部的にはrsyncを使用しますが、正しいパラメータを使用して呼び出し、古いバックアップをスクリーニングするなどの操作を管理します。

rsnapshot では、複数の時間間隔を定義して、古いバックアップを収集する方法を指定できます。最小間隔は、あなたの場合毎日バックアップが行われる頻度です。間隔が長いほど、保持するバックアップが定義されます。 rsnapshotの各コマンドは、実行時に2つのタスクを実行します。retain INTERVAL Nrsnapshot.confrsnapshot INTERVAL

  1. N-1つのスナップショットのみが残るようにバックアップディレクトリを選択しますINTERVAL
  2. 最低間隔の場合はバックアップが行われ、他の間隔の場合は前の間隔の現在のイメージがコピーされます。

たとえば、毎日バックアップを実行し、3日、5日、10日前のバックアップを維持するには、次の行をretain次の行に含めます/etc/rsnapshot.conf

retain daily 2
retain day3 2
retain day5 3

rsnapshot daily毎日のクローンジョブとして実行します。数分前と3日ごとにジョブを実行すると、次のようにおおよその計算ができますrsnapshot day3rsnapshot day5

04 04 5,10,15,20,25,30 * * rsnapshot day5
07 04 3,6,9,12,15,18,21,24,27,30 * * rsnapshot day3
10 04 * * * rsnapshot daily

(たとえば、2日目にバックアップを削除するため、3日間のバックアップを持つことはできません。しなければならないことは、3日間毎日バックアップを維持することです)。 rsnapshot ドキュメントに示すように。

おすすめ記事