X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=zfs-autosnap-wrapper;h=fc17c0872bc3e0c2c83efde7da266c235ee3e437;hb=fff1f01ed31934ecb362f274b2fe3023c1ee0fa0;hp=ad8f4fc371fec7c7e4ab7a993c6a812c161c822d;hpb=698062c29aad5253bc10d488958de289055429e5;p=zfs-ubuntu%2F.git diff --git a/zfs-autosnap-wrapper b/zfs-autosnap-wrapper index ad8f4fc..fc17c08 100755 --- a/zfs-autosnap-wrapper +++ b/zfs-autosnap-wrapper @@ -4,30 +4,48 @@ # Description: This script is a wrapper script that calls zfs-autosnap # for each filesystem provided below. +# source our configuration +config="${0%/*}/zfs-scripts.conf" +[ -e "${config}.dist" ] && . ${config}.dist +[ -e "${config}" ] && . ${config} + # Setup some default values -autosnap="/usr/local/etc/bin/zfs-autosnap" -logfile="/var/log/zfs/zfs-autosnap.log" +logfile="$logdir/zfs-autosnap.log" numsnapshots=20 maxagedays=365 +date=`date` +mylockdir="/tmp/zfs-autosnap-all" +current_hour=`date +"%H"` +current_minute=`date +"%M"` +current_day=`date +"%u"` + +# Make sure we aren't already running +if ! mkdir "$mylockdir" >/dev/null 2>&1; then + echo "$date Another $0 process is already running" >> $logfile + exit 1 +fi # Auto snapshot every zfs filesystem on the system specified below date >> $logfile # Special filesystems -$autosnap storage /storage $numsnapshots 15 -$autosnap tank/usr/videos /usr/videos $numsnapshots 15 +# ex: zfs-autosnap storage /storage $numsnapshots 15 +# ex: zfs-autosnap tank/usr/videos /usr/videos $numsnapshots 15 # Normal filesystems -$autosnap tank / $numsnapshots $maxagedays -$autosnap tank/backup /backup $numsnapshots $maxagedays -$autosnap tank/usr /usr $numsnapshots $maxagedays -$autosnap tank/usr/home /usr/home $numsnapshots $maxagedays -$autosnap tank/usr/local /usr/local $numsnapshots $maxagedays -$autosnap tank/usr/local/etc /usr/local/etc $numsnapshots $maxagedays +# ex: zfs-autosnap tank / $numsnapshots $maxagedays +# ex: zfs-autosnap tank/home /home $numsnapshots $maxagedays # Daily filesystems (only perform these at midnight) -if [ `date +"%H:%M"` == "00:00" ]; then - $autosnap tank/var /var $numsnapshots $maxagedays - $autosnap tank/usr/local/var /usr/local/var $numsnapshots $maxagedays +# midnight = true if (midnight < current time < midnight+5 min) +if [[ $current_hour == "00" && $current_minute -lt 5 ]]; then + echo "Performing Daily snapshots" >> $logfile +fi + +# Weekly filesystems (only perform these on Sunday at midnight) +# midnight = true if (midnight < current time < midnight+5 min) +if [[ $current_day == "7" && $current_hour == "00" && $current_minute -lt 5 ]]; then + echo "Performing Weekly snapshots" >> $logfile fi +rm -rf "$mylockdir"