This is an old revision of the document!
#`date -v -1d +"$type%Y-%m-%d"` pool="zvol1/vol1" # iterate i from 15 to 62 # any snapshot older than 2 weeks (14 days) or (15-62 days) old is deleted for i in 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 do CLEANDATE=`date -v -${i}d +"$type%Y-%m-%d"` CLEAN_SNAP="${pool}@${CLEANDATE}" #echo $CLEAN_SNAP if zfs list -H -o name -t snapshot | sort | grep "$CLEAN_SNAP" > /dev/null; then zfs destroy -r $CLEAN_SNAP fi done
#!/bin/sh pool="zvol1/vol1" destination="zvol1" host="10.1.0.79" today=`date +"$type%Y-%m-%d"` yesterday=`date -v -1d +"$type%Y-%m-%d"` # create today snapshot snapshot_today="$pool@$today" # look for a snapshot with this name if zfs list -H -o name -t snapshot | sort | grep "$snapshot_today$" > /dev/null; then echo " snapshot, $snapshot_today, already exists" exit 1 else echo " taking todays snapshot, $snapshot_today" zfs snapshot -r $snapshot_today fi # look for yesterday snapshot snapshot_yesterday="$pool@$yesterday" if zfs list -H -o name -t snapshot | sort | grep "$snapshot_yesterday$" > /dev/null; then echo " yesterday snapshot, $snapshot_yesterday, exists lets proceed with backup" zfs send -R -i $snapshot_yesterday $snapshot_today | ssh root@$host zfs receive -Fduv $destination echo " backup complete" exit 0 else echo " missing yesterday snapshot aborting, $snapshot_yesterday" exit 1 fi