Btrfs で毎時/毎日/毎週のスナップショットを自動作成する方法

Btrfs で毎時/毎日/毎週のスナップショットを自動作成する方法

2003 年に NetApp サーバーを導入した会社で働いていたときのことを覚えています。ホーム ディレクトリにスナップショット ディレクトリがあり、そこにさまざまなスナップショットが表示されていました。最後の 1 分、1 時間、1 日、1 週間などのスナップショットがあったと思います。初めて Btrfs ファイルシステムをセットアップしたとき、Btrfs を使用して同様のインターフェイスのプロビジョニングを自動化するスクリプトが見つからないことに驚きました。

レイアウトがどのように設定されたかは正確には思い出せませんが、次のような感じだったと思います。

$HOME/some_file
$HOME/.snapshot/minute/2016-04-16_07_33/some_file
                       2016-04-16_07_34/...
                       2016-04-16_07_35
                hour/2016-04-16_05_00
                     2016-04-16_06_00
                     2016-04-16_07_00
                day/2016-04-14
                    2016-04-15
                    2016-04-16
                week/2016-03-27
                     2016-04-03
                     2016-04-10

私が探しているのは、 から実行できるスクリプトですcron。このスクリプトは、必要な Btrfs スナップショットを作成し、上記の場所にマウントします。これは 1 分ごとに実行される必要があります。各時間単位 (分/時間/日/週) ごとに、最後の N 単位に対して、構成可能な数 N のスナップショットが保持される必要があります。上記の例では、N は 3 になります。古いスナップショットは、使用中でない限り自動的に削除される必要があります。「使用中」とは、たとえば、cdそれらの 1 つに ' したか、別の場所にバインド マウントしたことを意味します。

当然ながら、自分の の下だけでなく、/ルート システムの の下や の下のスナップショットも同時に取得できれば便利です。/home/some_other_user/$HOME

関連情報