Löschen Sie alle Snapper-Snapshots

15

OpenSUSE (neben anderen Distributionen) verwendet Snapper , um Snapshots von btrfs- Partitionen zu erstellen . Einige Leute denken, dass die Standard-Snapshot-Intervalle zu schnell zu viel Speicherplatz beanspruchen, aber ob Sie das glauben oder nicht, es gibt Zeiten, in denen Sie Speicherplatz auf Ihrem Dateisystem löschen möchten und oft feststellen, dass die btrfs- Snapshots eine erhebliche Menge Speicherplatz beanspruchen . In anderen Fällen möchten Sie möglicherweise das Dateisystem von allen überschüssigen Daten säubern, bevor Sie diese auf eine / von einer VM verschieben oder das Speichermedium oder etwas Ähnliches ändern.

Es scheint jedoch nicht möglich zu sein, einen Befehl zum schnellen Löschen aller Schnappschüsse zu finden, die Snapper aufgenommen hat, entweder über Snapper oder ein anderes Tool. Wie würde ich das machen?

Kumpelschwimmen
quelle

Antworten:

23

Der Befehl in neueren Versionen von Snapper lautet (ich erinnere mich nicht, wann er eingeführt wurde, aber die Version in z. B. openSUSE 13.2 unterstützt dies):

snapper delete number1-number2

Gehen Sie wie folgt vor, um alle Schnappschüsse zu löschen (vorausgesetzt, Sie haben nicht mehr als 100000 Schnappschüsse):

snapper delete 1-100000

Offensichtlich löscht dies nur Snapshots in der Standard-Root-Konfiguration. Für eine andere Konfiguration wäre dies also:

snapper -c configname delete number1-number2
Quantumboredom
quelle
Ich erhalte jetzt eine Fehlermeldung: Snapshot '100000' nicht gefunden.
Pavel Šimerda
ty, ty, ty. der range operator hat nicht funktioniert, ich musste alle 20 snapshots manuell löschen.
Paul Vixie
4

Sie können eine forSchleife verwenden, um alle Schnappschüsse innerhalb eines Bereichs zu löschen (als Root ausführen ).

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

Dies führt zu ungültigen Einträgen (wenn die Nummer keiner Snapshot-ID entspricht), was zu einem harmlosen Fehlerprotokoll führt.

Verwenden Sie Folgendes, um den Bereich (untere und obere Grenze) von Snapshot-IDs zu bestimmen, damit die Schleife nicht unnötig lange ausgeführt wird:

snapper list

Ich fand diese Lösung zusammen mit einer Diskussion darüber, wie das Snapper-Intervall und die Aufbewahrungseinstellungen reduziert werden können .

Kumpelschwimmen
quelle
-1

Wenn Sie an einer älteren Version von Snapper wie Debian Jessie arbeiten, können Sie die Bash-Erweiterung verwenden:

snapper delete {1..999}
blaimi
quelle