Effacer tous les instantanés de Snapper

17

OpenSUSE (parmi d'autres distributions) utilise snapper pour prendre des instantanés des partitions btrfs . Certaines personnes pensent que les intervalles d'instantanés par défaut prennent trop de place trop rapidement, mais que vous le croyiez ou non, il y a des moments où vous souhaitez vider de l'espace sur votre système de fichiers et constatez souvent que les instantanés btrfs prennent beaucoup d'espace. Ou, dans d'autres cas, vous souhaiterez peut-être effacer le système de fichiers de toutes les données excédentaires avant de les déplacer vers / depuis une machine virtuelle ou de changer le support de stockage ou quelque chose dans ce sens.

Mais, je ne peux pas sembler trouver une commande pour effacer rapidement tous les clichés vivaneau a pris, soit par le vivaneau ou un autre outil. Comment pourrais-je faire ça?

palswim
la source

Réponses:

25

La commande dans les versions récentes de snapper est (je ne me souviens pas quand elle a été introduite, mais la version par exemple, openSUSE 13.2 prend en charge cela):

snapper delete number1-number2

Donc, pour supprimer tous les instantanés (en supposant que vous n'en avez pas plus de 100 000), vous feriez:

snapper delete 1-100000

Évidemment, cela ne supprime que les instantanés de la configuration racine par défaut, donc pour une configuration différente, ce serait:

snapper -c configname delete number1-number2
Quantumboredom
la source
Je reçois maintenant une erreur: l'instantané «100000» est introuvable.
Pavel Šimerda
ty, ty, ty. notant, l'opérateur de plage n'a pas fonctionné, j'ai dû supprimer manuellement les 20 instantanés.
Paul Vixie
4

Vous pouvez utiliser une forboucle pour supprimer tous les instantanés d'une plage (exécutés en tant que root ).

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

Cela frappera certaines entrées non valides (lorsque le nombre ne correspond pas à un ID d'instantané), ce qui entraînera un journal des erreurs inoffensif.

Pour déterminer la plage (limite inférieure et supérieure) des ID d'instantané, afin que la boucle ne s'exécute pas inutilement longtemps, utilisez:

snapper list

J'ai trouvé cette solution avec une discussion sur la façon de réduire l'intervalle de vivaneau et les paramètres de rétention .

palswim
la source
-1

Si vous travaillez sur une ancienne version de snapper comme sur Debian Jessie, vous pouvez utiliser bash-expansion:

snapper delete {1..999}
blaimi
la source