#!/bin/shpoolname=pool/sharedir=/pool/sharereserve_GB=500list_snapshots (){ zfs list -t snapshot -o name -s creation | grep ${poolname}@}list_snapshotssnap_name=${poolname}@`date +"%Y%m%d%H%M%S"`echo create snapshot $snap_namezfs snapshot "$snap_name"while : ; do free_GB=`/usr/gnu/bin/df ${dir} | awk 'NR!=1 {print $4}'` free_GB=`expr $free_GB / 1024 / 1024` echo $poolname $free_GB GB free. test "$free_GB" -ge "$reserve_GB" && break list_snapshots>/dev/null || break oldest_snap=`list_snapshots | head -1` echo destroy $oldest_snap zfs destroy "$oldest_snap" sleep 1done