Yabsnap
Yabsnap は、Arch 用に作成された Btrfs パーティション用のスケジュールされたスナップショットマネージャーです。
目次
インストール
yabsnapAUR パッケージを インストール します、開発バージョンは yabsnap-gitAUR からインストールできます。
設定
次のコマンドを実行してスケルトン設定を作成します。
# yabsnap create-config 'configname'
これにより、/etc/yabsnap/configs/confignane.conf
が作成されます。ファイルを編集して次のように指定します。
source
- サブボリュームがマウントされている場所。例:/home
dest_prefix
- 作成されるスナップショット名のフルパスとプレフィックス。たとえば、/.snapshot/@home-
は、/.snapshot/@home-20230525120000
のようなファイルスナップショットバックアップを作成します。
他のパラメータを編集して、バックアップがいつトリガーされクリーンアップされるかを指定することもできます。
主なコマンド
スナップショットの表示
既存のスナップショットを確認するには、次を使用します。
$ yabsnap list
スナップショットの作成
すべての設定のスナップショットを作成するには、次を使用します。
# yabsnap create --comment 'COMMENT'
特定のマウントされたサブボリュームに制限することもできます。Yabsnap は、適切な設定を自動的に見つけて使用します。
# yabsnap --source '/home' create --comment 'COMMENT'
スナップショットのクリーンアップまたは削除
自動クリーンアップ
Yabsnap は、/etc/yabsnap/configs/*.conf
の設定に基づいてスナップショットを自動的に削除します。
スナップショットの削除
次のコマンドを使用して、スナップショットを手動で削除することもできます。
フルパスを指定すると、特定のスナップショットが削除されます。
# yabsnap delete /.snapshots/@home-20230525120000
タイムスタンプを指定すると、一緒に作成された一致するスナップショットがすべて削除されます。
# yabsnap delete 20230525120000
ロールバックの作成
ロールバックの必要性: Subvolでマウントし、Subvolidでマウントしない
すべてのボリュームを subvolid ではなく subvol でマウントすることをお勧めします。
たとえば、これは fstab エントリになります。
UUID=[YOUR_UUID] / btrfs rw,noatime,ssd,space_cache=v2,compress=zstd,subvol=/@ 0 0
これが機能する理由は、ロールバックメカニズムが fstab ファイルを編集せず、単に正しいスナップショットがそれぞれの場所にマウントされていることを確認するだけだからです。
ロールバック操作
ロールバックのコマンドは、生成されたスクリプトを実行するまでは安全です。
これにより、ロールバックスクリプトが生成されます。
タイムスタンプを既存のスナップショットの 1 つに変更します。
$ yabsnap rollback-gen 20230525081049 | tee ~/rollback.sh
スクリプトを実行すると、実際にロールバックが発生します。ロールバックする前に、生成された行を確認することをお勧めします。
ロールバック用に生成されたスクリプトを確認したら、それを 実行可能 にして実行できます。
# ~/rollback.sh
これにより、指定されたタイムスタンプで作成されたすべてのスナップショットのロールバックが実行されます。
Snapper との比較
Snapper のいくつかの欠点を克服するために作成されました。具体的には、(執筆時点では) Snapper では実行が困難または不可能である次のことを実行します。
- バックアップのカスタム宛先 (関連問題)
- すべての設定のロールバック (デフォルトのサブボリュームだけでなく)
- pacman フック サポートが統合されました。