Удалить файловую систему ZFS со снимками, но без других дочерних элементов?

Вы можете удалить файловую систему ZFS (или другой набор данных) с помощью zfs destroy . Это не работает, если в наборе данных есть дочерние элементы, включая снимки. zfs destroy -r <набор данных> удалит файловую систему и ее дочерние элементы, но также уничтожит все дочерние элементы файловой системы, не являющиеся моментальными снимками. Есть ли краткий способ сказать: «Удалите эту файловую систему и ее снимки, но только если у нее нет дочерних файлов, не являющихся снимками»?

В принципе, у меня есть несколько вложенных файловых систем, и я широко использую снимки, как для репликации и для дешевых бэкапов. Мне нужен способ легко удалить дочерние файловые системы и их снимки (например, zfs destroy tank / container / leaf ), обеспечивая при этом некоторую защиту от случайного уничтожения всей коллекции файловой системы (например, zfs destroy tank / container leaf )

В случае это важно, я использую ZFS в Linux с Scientific Linux 7.


Решение :

На основании комментария longneck, я могу сделать это двумя строчками:

zfs destroy tank/example/leaf@%
zfs destroy tank/example/leaf

Я тестировал его, и оно работает именно то, что я хочу.

2
задан 7 July 2016 в 18:12
2 ответа

Я не тестировал это, но я видел в других сообщениях, что вы можете удалить все снимки следующим образом:

zfs destroy -rv dataset_or_vol_name@%

Затем вы можете продолжить с помощью destroy команда для удаления базы данных.

3
ответ дан 3 December 2019 в 09:59

Это не однострочный лайнер, но вы можете использовать вывод из

zfs list -t all -r -H <dataset>

и пропустить сценарий, тщательно проверить все и уничтожить соответствующие файловые системы.

1
ответ дан 3 December 2019 в 09:59

Теги

Похожие вопросы