Skip to content

Latest commit

 

History

History
108 lines (75 loc) · 5.3 KB

05-snapshot.md

File metadata and controls

108 lines (75 loc) · 5.3 KB

snapshot (ss) グループ

CLI リファレンス目次に戻る

スナップショットの管理を行うコマンド群です。詳細は スナップショットガイド を参照してください。

devbase snapshot create

スナップショットを作成します。

devbase snapshot create [--name NAME] [--full] [--group NAME]
オプション 説明
--name NAME スナップショット名を指定(デフォルトはタイムスタンプ)
--full フルバックアップを強制作成
--group NAME 対象のアカウントグループ(devbase_home_<group>)。省けば実行したプロジェクトの宣言のグループ

プロジェクトの外で --group を付けないと終了コード 2、宣言の無いプロジェクトの中では終了コード 1 で止まります。--group default も終了コード 2 です(旧既定のボリュームの系列には新しい世代を 作りません。一覧・復元・コピー・削除・ローテーションはできます)。

既にある世代の名前を --full なしで指定すると、その世代へ差分を積みます。その世代が今と違う除外の一覧で 作られている(除外の一覧を記録していない世代を含む)ときは、差分を作らずに終了コード 1 で止まります。

既にある世代の名前を --full 付きで指定すると、その世代を今のボリュームの全体で作り直します。前の フルと差分は消え、その世代から前の時点へは戻せません。前の時点を残したいときは、別の名前で作るか、 先に devbase snapshot copy で写してください。作り直しに失敗したときは終了コード 1 で止まり、控えの コマンドが失敗した場合は世代が打つ前のまま残ります。入れ替えの途中で止まった世代は、もう一度同じ名前で --full を打つと作り直せます(それまで復元は止まることがあります)。

控えには、既定の除外(作り直せる一時ファイル・ログ・取り直せる取得物)と backups/exclude.yml に 書いた除外が入りません。一覧と書き方は スナップショットガイドの「控えから外すもの」 にあります。

# 自動命名でフルスナップショット(差分を積むのは devbase up の自動スナップショット)
devbase snapshot create

# 名前付きフルバックアップ
devbase snapshot create --name before-upgrade --full

devbase snapshot list

スナップショットの一覧を表示します。

devbase snapshot list

devbase snapshot restore

スナップショットから復元します。

devbase snapshot restore <name> [--point N]
パラメータ / オプション 必須 説明
<name> はい 復元するスナップショット名
--point N いいえ N 番目の差分まで復元(省略時は最新まで全適用)

Warning: 復元前に、復元する世代の対象ボリュームの状態が pre-restore-<timestamp> として自動バックアップされます。この自動バックアップから元に戻せるのは、次の devbase up より前に限ります(次の自動スナップショットがそこへ差分を積むため)。

devbase snapshot copy

スナップショットをコピーします。

devbase snapshot copy <name> <new_name>

devbase snapshot delete

スナップショットを削除します。

devbase snapshot delete <name>

devbase snapshot rotate

古い世代のスナップショットを削除します。世代はアカウントグループ(対象ボリュームの組)ごとの 系列に分かれ、系列ごとに --keep 世代を残したうえで、全体の上限を超えた分を系列をまたいで 古い順に削除します。各系列の最新の世代は削除しません。

devbase snapshot rotate [--keep N] [--max-total M]
オプション 説明
--keep N アカウントグループ(系列)ごとに保持する世代数(デフォルト: 3)
--max-total M すべてのグループを合わせて保持する世代数の上限(デフォルト: N × 3)。各グループの最新の世代は上限を超えても残す

N と M は 1 以上です。0 以下はエラーで終了コード 1 になります。

削除する世代が無く一覧も変わらないときは「ローテーション不要です」と表示します。snapshot.yml の 名前が backups/ の外を指す、または世代がシンボリックリンクのため削除せず一覧からだけ外した ときは、警告に続けて外した世代数を表示し、「ローテーション不要です」は表示しません。外した世代数は、 古い世代を削除したときも削除の表示に添えて表示します。

どちらの指定も、手動で実行したその 1 回だけに効きます。 値は保存されず、devbase up / devbase down の自動ローテーションは既定(グループごとに 3・全体で 9)で動きます。