#!/bin/shpoolname=pool1/dataset1reserve_GB=500snap_name=${poolname}@`date +"%Y%m%d%H%M%S"`echo create snapshot $snap_namezfs snapshot "$snap_name"while : ; do free_GB=`df -g ${poolname} | awk 'NR!=1 {print $4}'` test "$free_GB" -ge "$reserve_GB" && break zfs list -t snapshot -o name | grep @ >/dev/null || break oldest_snap=`zfs list -t snapshot -o name -S creation | tail -1` echo destroy $oldest_snap zfs destroy "$oldest_snap" sleep 1done
ln -s .zfs snapshot