zb-cleanup implemented

This commit is contained in:
Mirek Kratochvil 2014-04-08 19:38:36 +02:00
parent fabd07c68a
commit d55edaf2a7

View file

@ -1,2 +1,32 @@
#!/bin/sh #!/bin/bash
if [[ -z "$1" || -z "$2" ]] ; then
echo "usage: $0 <volume> <density>" >&2
exit 1
fi
timestamp () {
t="`echo \"$1\" |sed -e 's/^.*@zb-//' |tr 'p_' '+ '`"
date --date="$t" +%s
}
density="$2"
timenow=`date +%s`
lasttime=0
zfs list -t snapshot -r -d 1 -H "$1" |awk '{print $1;}' | while read l ; do
echo `timestamp "$l"` "$l"
done |sort -n | while read l ; do
curtime=${l%% *}
snapname=${l#* }
if [ "$curtime" -ge "$timenow" ] ; then
break
fi
if [ `echo "$density*($curtime-$lasttime)/($timenow-$lasttime)"` -lt 1] ; then
zfs destroy "$snapname"
else
lasttime="$curtime"
fi
done