PATH=/usr/sbin:/sbin:$PATH
if [ -z "$SNAP_UNDER_TEST" ]; then
- exec >> /var/log/snap.log 2>&1
+ exec >> /var/log/zfs/zfs-autosnap.log 2>&1
fi
# This script makes the following assumptions/requirements:
mountpoint=${2-/$1}
numsnapshots=${3-12}
maxagedays=${4-0}
-lockdir="/tmp/${filesystem}.lock"
+lockdir="/tmp/zfs-admin-lock"
pool=`echo "$filesystem" | awk -F '/' '{ print $1 }'`
if [ -z "$filesystem" ] || [ -z "$mountpoint" ] || [ -z "$numsnapshots" ] || [ -z "$maxagedays" ]; then
minutes=$(echo $datetime | datetime_to_minutes)
-lockdir="/tmp/zfs-admin-lock"
if ! mkdir "$lockdir" >/dev/null 2>&1; then
+ echo "-W- The zfs filesystem has been locked down. Skipping snapshot cleanup."
exit 0
fi
cleanup() { rm -rf "$lockdir"; }
case $((snapminutes2 % window)) in
0) ;;
*)
- snapname=$(echo "$snapshot" |
- sed 's,/\(.*\)/.zfs/snapshot/\(.*\),\1@\2,')
+ snapname=${filesystem}$(echo "$snapshot" |
+ sed 's,/\(.*\)/.zfs/snapshot/\(.*\),@\2,')
destroy "$snapname"
;;
esac
window=$((window*2))
done
if [ $maxagedays -gt 0 ] && [ $age -gt $((maxagedays * 24 * 60)) ]; then
- snapname=$(echo "$snapshot" |
- sed 's,/\(.*\)/.zfs/snapshot/\(.*\),\1@\2,')
+ snapname=${filesystem}$(echo "$snapshot" |
+ sed 's,/\(.*\)/.zfs/snapshot/\(.*\),@\2,')
destroy "$snapname"
fi
done