Wyczyść wszystkie migawki Snappera

17

OpenSUSE (między innymi dystrybucjami) używa snappera do robienia migawek partycji btrfs . Niektórzy uważają, że domyślne interwały migawek zbyt szybko zajmują zbyt dużo miejsca, ale niezależnie od tego, czy w to wierzysz, zdarza się, że chcesz wyczyścić miejsce w systemie plików i często zdarza się, że migawki btrfs zajmują znaczną ilość miejsca. Lub, w innych przypadkach, możesz chcieć wyczyścić system plików ze wszystkich nadmiarowych danych przed przeniesieniem go do / z maszyny wirtualnej lub zmianą nośnika pamięci lub czegoś podobnego.

Ale nie wydaje się znaleźć polecenie, aby szybko wytrzeć wszystkie migawek Lucjan podjętych zarówno przez lucjan lub innego narzędzia. Jak mam to zrobić?

palswim
źródło

Odpowiedzi:

25

Komenda w ostatnich wersjach Snappera brzmi (nie pamiętam, kiedy została wprowadzona, ale wersja np. OpenSUSE 13.2 obsługuje to):

snapper delete number1-number2

Aby usunąć wszystkie migawki (zakładając, że nie masz ich więcej niż 100 000), wykonaj następujące czynności:

snapper delete 1-100000

Oczywiście usuwa to tylko migawki z domyślnej konfiguracji root, więc dla innej konfiguracji byłoby to:

snapper -c configname delete number1-number2
Quantumboredom
źródło
Pojawia się błąd: nie znaleziono migawki „100000”.
Pavel Šimerda
ty, ty, ty. zauważając, operator zakresu nie działał, musiałem ręcznie usunąć wszystkie 20 migawek.
Paul Vixie
4

forPętli można użyć do usunięcia wszystkich migawek z zakresu (uruchom jako root ).

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

Spowoduje to trafienie niektórych nieprawidłowych wpisów (gdy liczba nie odpowiada identyfikatorowi migawki), co spowoduje nieszkodliwy dziennik błędów.

Aby określić zakres (dolny i górny limit) identyfikatorów migawek, aby pętla nie działała niepotrzebnie długo, użyj:

snapper list

Znalazłem to rozwiązanie wraz z dyskusją o tym, jak skrócić interwał Snappera i ustawienia przechowywania .

palswim
źródło
-1

Jeśli pracujesz na starszej wersji Snappera, takiej jak Debian Jessie, możesz użyć bash-expand:

snapper delete {1..999}
blaimi
źródło