Limpar todos os instantâneos do Snapper

11

O OpenSUSE (entre outras distribuições) usa snapper para capturar instantâneos de partições btrfs . Algumas pessoas acham que os intervalos de instantâneos padrão ocupam muito espaço muito rapidamente, mas se você acredita ou não nisso, há momentos em que você deseja limpar o espaço em 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, você pode 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 assim.

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

    
por palswim 28.01.2015 / 19:39

3 respostas

17

O comando em 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

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

snapper delete 1-100000

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

snapper -c configname delete number1-number2
    
por 14.04.2015 / 17:47
3

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

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

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

Para determinar o intervalo (limite inferior e superior) dos IDs de snapshots, para que o loop não seja executado desnecessariamente por muito tempo, use:

snapper list

Eu encontrei esta solução junto com um discussão sobre como reduzir as configurações de intervalo e retenção do snapper .

    
por 28.01.2015 / 19:39
-1

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

snapper delete {1..999}
    
por 23.01.2017 / 12:24