Архив лежит тут
Пример использования
./delsnap Pool/Test 2 auto
Переберёт все снапшоты вида Pool/Test
@
auto..., оставит из них два самых свежих, остальные удалит.Полезно, например, при необходимости удалить автоматически созданные в nas4free снапшоты. Или удалении старых снапшотов, созданных при архивировании.
Если третий параметр опустить, по умолчанию берёт префикс backup, используемый в других скриптах от Oleg Pyzhov
Последний снапшот рекомендую оставлять, но если надо убить - второй параметр ставим 0.
на всякий случай текст скрипта - под катом
#!/bin/bash
# initial version by Oleg Pyzhov, see http://forum.ixbt.com/topic.cgi?id=11:44629:3826#3826
# minor editing by MikeMac
# A script for delete all but last N snapshots with name @name
# usage: ./delsnap
# example: ./delsnap Pool/Test 2 backup
backpool=$1
MAXSNAPBACKPOOL=$2
PREFIX4DELETE=$3
#default for PREFIX4DELETE is backup for compatibility with initial version
if [[ $PREFIX4DELETE == "" ]]; then
PREFIX4DELETE="backup"
fi
if [ -n "$backpool" ]; then
if [ -n "$MAXSNAPBACKPOOL" ]; then
numsnap=`zfs list -H -o name -t snapshot|grep "${backpool}@$PREFIX4DELETE"|wc|awk '{ print $1 }'`
let MAXSNAPBACKPOOL=numsnap-MAXSNAPBACKPOOL >/dev/null
if [ $MAXSNAPBACKPOOL -gt 0 ] ; then
for d in `zfs list -H -o name -t snapshot|grep "${backpool}@$PREFIX4DELETE"|/usr/bin/he ad -n"$MAXSNAPBACKPOOL"`; do
zfs destroy ${d}
done
echo $MAXSNAPBACKPOOL" snapshot(s) deleted"
else
echo no snapshots to delete
fi
else
echo ERROR please provide number of snapshots to keep, i.e. 2
exit 1
fi
else
echo ERROR please provide dataset name, i.e. Pool/Dataset
exit 1
fi
Однако, советую скачать и разархивировать куда-то в папку NAS, напомню, командой
tar -xvf delsnap.tar