Eu não testei, mas eu vi em outros posts que você pode remover todos os instantâneos como este:
zfs destroy -rv dataset_or_vol_name@%
Você poderia então fazer o acompanhamento com o comando destroy
para remover o banco de dados.
Você pode excluir um sistema de arquivos ZFS (ou outro conjunto de dados) com zfs destroy <dataset>
. Isso falhará se o conjunto de dados tiver filhos, incluindo instantâneos. zfs destroy -r <dataset>
removerá o sistema de arquivos e seus filhos, mas também destruirá qualquer filho não-instantâneo do sistema de arquivos. Existe uma maneira sucinta de dizer "Excluir este sistema de arquivos e seus instantâneos, mas somente se ele não tiver filhos não-instantâneos"?
zfs destroy tank/container/leaf
), fornecendo um mínimo de proteção contra a exclusão acidental de toda a coleção do sistema de arquivos (por exemplo, zfs destroy tank/container<enter>leaf
)
Caso isso seja importante, estou usando o ZFS no Linux com o Scientific Linux 7.
Solução :
Com base no comentário do longneck, posso fazer isso com duas linhas:
zfs destroy tank/example/leaf@%
zfs destroy tank/example/leaf
Eu testei e faz exatamente o que eu quero.
Este não é um folheto, mas você pode usar a saída de
zfs list -t all -r -H <dataset>
E faça um script passar e verifique as coisas com cuidado e destrua os sistemas de arquivos apropriados.
Tags zfs