Limpar todos os instantâneos do Snapper

16

O OpenSUSE (entre outras distribuições) usa o snapper para tirar instantâneos das partições btrfs . Algumas pessoas pensam que os intervalos de instantâneos padrão ocupam muito espaço muito rapidamente, mas, acredite ou não, há momentos em que você deseja liberar espaço no seu sistema de arquivos e geralmente descobre que os instantâneos btrfs estão ocupando uma quantidade significativa de espaço. Ou, em outros casos, convém limpar o sistema de arquivos de todos os dados em excesso antes de movê-los para / de uma VM ou alterar a mídia de armazenamento ou algo nesse sentido.

Mas não consigo encontrar um comando para limpar rapidamente todos os snapshots que o snapper tirou, por meio do snapper ou de outra ferramenta. Como eu faria isso?

palswim
fonte

Respostas:

24

O comando nas versões recentes do snapper é (não me lembro quando foi introduzido, mas a versão em, por exemplo, o openSUSE 13.2 suporta isso):

snapper delete number1-number2

Portanto, para excluir todos os instantâneos (supondo que você não tenha mais de 100000), você faria:

snapper delete 1-100000

Obviamente, isso exclui apenas os instantâneos na configuração raiz padrão; portanto, para uma configuração diferente, seria:

snapper -c configname delete number1-number2
Quantumboredom
fonte
Agora estou recebendo um erro: Instantâneo '100000' não encontrado.
Pavel Šimerda
ty, ty, ty. observando, o operador de intervalo não funcionou, eu tive que excluir manualmente todos os 20 instantâneos.
Paul Vixie
4

Você pode usar um forloop para excluir todos os instantâneos dentro de um intervalo (executado como raiz ).

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

Isso atingirá algumas entradas inválidas (quando o número não corresponde a um ID de instantâneo), o que resultará em um log de erros inofensivo.

Para determinar o intervalo (limite inferior e superior) dos IDs de instantâneos, para que o loop não seja desnecessariamente longo, use:

snapper list

Encontrei esta solução juntamente com uma discussão sobre como reduzir o intervalo do snapper e as configurações de retenção .

palswim
fonte
-1

Se você estiver trabalhando em uma versão mais antiga do snapper como no Debian jessie, poderá usar o bash-expansion:

snapper delete {1..999}
blaimi
fonte