From d55edaf2a78c8f7d63d120cc616686b65983c31c Mon Sep 17 00:00:00 2001 From: Mirek Kratochvil Date: Tue, 8 Apr 2014 19:38:36 +0200 Subject: [PATCH] zb-cleanup implemented --- zb-cleanup | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/zb-cleanup b/zb-cleanup index 13f4793..cadb717 100755 --- a/zb-cleanup +++ b/zb-cleanup @@ -1,2 +1,32 @@ -#!/bin/sh +#!/bin/bash +if [[ -z "$1" || -z "$2" ]] ; then + echo "usage: $0 " >&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