From af5a0d8ab198451048e73eb7e1d8fadb78b40643 Mon Sep 17 00:00:00 2001
From: "Alan J. Pippin" <ajp@pippins.net>
Date: Sun, 18 Jan 2009 13:33:02 -0700
Subject: [PATCH] Fixed midnight bug in autosnap wrapper script

---
 zfs-autosnap-wrapper | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/zfs-autosnap-wrapper b/zfs-autosnap-wrapper
index ab09272..fc17c08 100755
--- a/zfs-autosnap-wrapper
+++ b/zfs-autosnap-wrapper
@@ -15,6 +15,9 @@ 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
@@ -26,20 +29,22 @@ fi
 date >> $logfile
 
 # Special filesystems
-zfs-autosnap storage /storage $numsnapshots 15
-zfs-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
-zfs-autosnap tank / $numsnapshots $maxagedays 
-zfs-autosnap tank/home /home $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 
+# 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)
-if [ `date +"%H:%M:%u"` == "00:00:7" ]; then
+# 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
 
-- 
2.34.1