From: Alan J. Pippin <ajp@pippins.net>
Date: Sun, 21 May 2023 15:41:38 +0000 (-0600)
Subject: Changed from looking directly in .zfs for snaps.
X-Git-Url: http://git.pippins.net/x.gif?a=commitdiff_plain;h=4d5e8199929308142509eaae652bbfdc559dfca3;p=zfs-ubuntu%2F.git

Changed from looking directly in .zfs for snaps.

Use zfs command to avoid automounting of .zfs.

Change-Id: Iab631a071fb8a335244d42b5e7b801f76b0ce2b0
---

diff --git a/zfs-autosnap b/zfs-autosnap
index 09e1a62..4c26aa9 100755
--- a/zfs-autosnap
+++ b/zfs-autosnap
@@ -66,14 +66,9 @@ if [ -z "$SNAP_UNDER_TEST" -a ! -d "$mountpoint" ]; then
 fi
 
 if [ -n "$SNAP_UNDER_TEST" ]; then
-    snapshotdir="./snapshot"
+    snapshots=$(ls -d ./snapshot/????-??-??.??.?? 2>/dev/null)
 else
-    snapshotdir="${mountpoint}/.zfs/snapshot"
-fi
-
-if [ ! -d "$snapshotdir" ]; then
-   echo "-E- Unable to find the snapshotdir: $snapshotdir"
-   exit 1
+    snapshots=$(zfs list -H -t snapshot -o name $filesystem | grep -P "\d+-\d+\.\d+\.\d+")
 fi
 
 # Check to see if this zfs filesystem has a scrub being performed on it now.
@@ -121,7 +116,6 @@ cleanup() { rm -rf "$lockdir"; }
 trap cleanup EXIT
 
 # Trim them down
-snapshots=$(ls -d ${snapshotdir}/????-??-??.??.?? 2>/dev/null)
 for snapshot in $snapshots; do
   snapminutes=$(echo "$snapshot" | sed 's,.*/,,' | datetime_to_minutes)
   snapminutes2=$(echo "$snapshot" | sed 's,.*/,,' | datetime_to_minutes2)
@@ -131,19 +125,13 @@ for snapshot in $snapshots; do
     if [ $age -lt $((window * numsnapshots)) ]; then
       case $((snapminutes2 % window)) in
         0) ;;
-        *)
-          snapname=${filesystem}$(echo "$snapshot" |
-                                  sed 's,/\(.*\)/.zfs/snapshot/\(.*\),@\2,')
-          destroy "$snapname"
-        ;;
+        *) destroy "$snapshot" ;;
       esac
       break
     fi
     window=$((window*2))
   done
   if [ $maxagedays -gt 0 ] && [ $age -gt $((maxagedays * 24 * 60)) ]; then
-    snapname=${filesystem}$(echo "$snapshot" |
-                            sed 's,/\(.*\)/.zfs/snapshot/\(.*\),@\2,')
-    destroy "$snapname"
+    destroy "$snapshot"
   fi
 done