Agora, para evitá-los, a única maneira de fazer isso é armazenar seus instantâneos em algum lugar que não esteja coberto pelo processo de instantâneo. Para isso, você basicamente tem duas opções:
-
Crie um subvolume dedicado para seus instantâneos dentro do subvolume que você está tirando fotos. Os snapshots param nos limites do subvolume (que é a razão pela qual eles não armazenam cópias de snapshots existentes), assim você não terá nenhum deles em seus snapshots, apenas um diretório vazio para o subvolume de snapshots. Esta é provavelmente a opção mais fácil de adotar agora, já que requer apenas criar o subvolume com
btrfs subvolume create
e apontar o script de criação de instantâneo para o local para armazenar os instantâneos. Por que vale a pena,.snapshots
parece ser um nome padrão de fato para essa abordagem. Depois de alguns dias de uso, sua árvore de diretórios ficaria mais ou menos assim:/media/backups /media/backups/.snapshots /media/backups/.snapshots/20180207_1342 /media/backups/.snapshots/20180209_0415 /media/backups/.snapshots/20180312_1754
Todos os seus dados que não são de instantâneo estão em
/media/backups
e todos os seus instantâneos individuais são armazenados em/media/backups/.snapshots
. Cada snapshot terá um diretório.snapshots
vazio. -
Em vez de usar o subvolume raiz do volume BTRFS, coloque todos os seus dados reais em seu próprio subvolume e instale o instantâneo ao colocar os instantâneos fora dele. Essa abordagem não é tão fácil de converter e provavelmente exigirá que você atualize mais do que apenas o comando de instantâneo, mas também facilita a reversão de um instantâneo inteiro de uma só vez. Depois de alguns instantâneos usando esse método, sua árvore de diretórios seria algo como isto:
/media/backups/current /media/backups/20180207_1342 /media/backups/20180209_0415 /media/backups/20180312_1754
Todos os seus dados são armazenados em
/media/backups/current
(que precisa ser um subvolume BTRFS exatamente como.snapshots
faz com o primeiro método), e seus instantâneos ficam ao lado dele em/media/backups
. Você pode restaurar facilmente um instantâneo inteiro simplesmente excluindo o subvolumecurrent
e criando um instantâneo gravável chamadocurrent
do instantâneo que deseja restaurar.
Agora, há duas outras observações que gostaria de fazer sobre o que você disse que não fazem parte diretamente da sua pergunta:
- O comando que você listou criará instantâneos graváveis. Isso quase certamente não é o que você deseja se a sua finalidade aqui for manter cópias de arquivamento de sua coleção, portanto sugiro adicionar
-r
às opções para tornar os instantâneos somente leitura. Se você precisar modificar um (por exemplo, se precisar remover completamente um arquivo da coleção), ainda poderá usar o comandobtrfs property set
para alternar o sinalizador somente leitura no instantâneo. - Embora não seja tecnicamente um problema significativo, o formato de data e hora não é convencional e, como tal, pode causar problemas se tentar lidar com esses instantâneos com outra ferramenta ou se confundir outras pessoas, se precisar compartilhar esses dados. Tendo isso em mente, sugiro usar '% FT% T', que lhe dará um timestamp ISO 8601 que deve ser analisado por todos os softwares e imediatamente reconhecível para a maioria das pessoas, enquanto ainda fornece uma classificação lexical sensata dos instantâneos. >