您可以使用zfs destroy <dataset>
. 如果数据集有子数据(包括快照),则会失败。 zfs destroy -r <dataset>
将删除文件系统及其子系统,但也会破坏文件系统的任何非快照子系统。是否有一种简洁的方式来表示“删除此文件系统及其快照,但前提是它没有非快照子项”?
基本上,我有许多嵌套文件系统,并且我广泛使用快照,用于复制和廉价备份。我想要一种方法来轻松删除子文件系统及其快照(例如zfs destroy tank/container/leaf
),同时提供一点保护,防止意外破坏整个文件系统集合(例如zfs destroy tank/container<enter>leaf
)
万一这很重要,我在 Linux 上使用 ZFS 和 Scientific Linux 7。
解决方案:
根据 longneck 的评论,我可以用两行来做到这一点:
zfs destroy tank/example/leaf@%
zfs destroy tank/example/leaf
我已经对其进行了测试,它完全符合我的要求。
我还没有测试过,但我在其他帖子中看到您可以像这样删除所有快照:
然后,您可以使用您的
destroy
命令来删除数据库。这不是一个班轮,但你可以使用输出
并让脚本通过它并仔细验证并销毁适当的文件系统。