it-swarm-ja.com

Snapperのスナップショットをすべてクリア

OpenSUSE(他のディストリビューションの中でも)はsnapperを使用してbtrfsパーティションのスナップショットを作成します。一部の人々は、デフォルトのスナップショット間隔があまりにも多くのスペースをすばやく取りすぎると思っていますが、それを信じるかどうかに関係なく、ファイルシステムのスペースをクリアして、しばしばbtrfs スナップショットはかなりの容量を使用しています。または、VMとの間で移動したり、これらの行に沿ってストレージメディアまたは何かを変更したりする前に、ファイルシステムのすべての過剰なデータを消去したい場合もあります。

しかし、すべてのスナップショットをすばやく消去するコマンドが見つからないようですsnapperは、snapperまたは別のツールを使用して取得しました。どうすればいいですか?

17
palswim

Snapperの最近のバージョンでのコマンドは次のとおりです(いつ導入されたかは覚えていませんが、openSUSE 13.2などのバージョンはこれをサポートしています)。

snapper delete number1-number2

したがって、すべてのスナップショットを削除するには(スナップショットが10万個以下であると想定)、次のようにします。

snapper delete 1-100000

もちろん、これはデフォルトのルート構成のスナップショットのみを削除するため、別の構成の場合は次のようになります。

snapper -c configname delete number1-number2
25
Quantumboredom

forループを使用して、範囲内のすべてのスナップショットを削除できます(rootとして実行)。

# for i in `seq 1 999`; do snapper delete $i; done

これにより、いくつかの無効なエントリがヒットし(番号がスナップショットIDに対応していない場合)、無害なエラーログが生成されます。

スナップショットIDの範囲(下限と上限)を決定して、ループが不必要に長く実行されないようにするには、以下を使用します。

snapper list

スナッパーの間隔と保持設定を減らす方法についての議論 とともにこの解決策を見つけました。

4
palswim