zfs. удаляем снимки (snapshot) оптом.

Иногда возникает необходимость (обычно — в силу своего же недосмотра) в удалении большого количества снапшотов на хранилке (в моём случае — OpenIndiana Development oi_151.1.8 X86) с файловой системой zfs. В случае с 3..7 снимками всё, конечно, проще сделать вручную, а вот при количестве, большем 10 — однозначно выигрывает малая автоматизация.

К своему стыду, вынужден признать, что по недогляду у меня на хранилке скопилось порядка 4000 снапшотов. 95% из 10ТБ было занято. Хранилка, естественно, потеряла производительность. Вычищать всё это вручную — труд неблагодарный, тем более, когда можно написать небольшой скриптик. Итак. Скрипт:

root@storage:/scripts# cat destroy.sh
#!/bin/bash
f="snap.txt"
while i= read -r line
do
echo "Destroing $line"
zfs destroy $line
done <"$f"

теперь выполняем команду

root@storage:/scripts# zfs list -t snapshot > snap.txt

на выходе получаем файл с содержимым:

root@storage:/scripts# cat snap.txt
NAME USED AVAIL REFER MOUNTPOINT
main/storage01@2015-02-28 0 - 291G -
main/storage01@2015-03-01-08-00 0 - 291G -
main/storage01@2015-03-01-11-00 0 - 291G -
main/storage01@2015-03-01-17-00 0 - 291G -
main/storage01@2015-03-01-19-00 0 - 291G -
main/storage01@2015-03-02-12-00 1.75G - 291G -
main/storage01@2015-03-02-18-00 1.38G - 291G -
main/storage01@2015-03-02-20-00 1.03G - 291G -
main/storage01@2015-03-03 5.02G - 291G -
main/storage02@2015-02-28 0 - 299G -
main/storage02@2015-03-01-08-00 0 - 299G -
main/storage02@2015-03-01-11-00 0 - 299G -
main/storage02@2015-03-01-17-00 0 - 299G -
main/storage02@2015-03-01-19-00 0 - 299G -
main/storage02@2015-03-01 0 - 299G -
main/storage02@2015-03-02-09-00 530M - 299G -
main/storage02@2015-03-02-12-00 583M - 299G -
main/storage02@2015-03-02-18-00 463M - 299G -
main/storage02@2015-03-02-20-00 378M - 299G -
main/storage02@2015-03-03 577M - 299G -

в своём любимом редакторе удаляем всё, кроме имён снимков. добавляем в конец файла пустую строку:

root@storage:/scripts# cat snap.txt
main/storage01@2015-02-28
main/storage01@2015-03-01-08-00
main/storage01@2015-03-01-11-00
main/storage01@2015-03-01-17-00
main/storage01@2015-03-01-19-00
main/storage01@2015-03-02-12-00
main/storage01@2015-03-02-18-00
main/storage01@2015-03-02-20-00
main/storage01@2015-03-03
main/storage02@2015-02-28
main/storage02@2015-03-01-08-00
main/storage02@2015-03-01-11-00
main/storage02@2015-03-01-17-00
main/storage02@2015-03-01-19-00
main/storage02@2015-03-01
main/storage02@2015-03-02-09-00
main/storage02@2015-03-02-12-00
main/storage02@2015-03-02-18-00
main/storage02@2015-03-02-20-00
main/storage02@2015-03-03
_

и выполняем наш скрипт. никакой магии и всё чисто :))

Помогла заметка - поделись с другом:
  1. Комментов пока нет

  1. Трэкбэков пока нет.

Оставьте эти два поля как есть:


 
Яндекс.Метрика