diff --git a/upsnapz.sh b/upsnapz.sh index 6a2bed1..2358dc5 100755 --- a/upsnapz.sh +++ b/upsnapz.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Time-stamp: <2025-02-25 06:36:02 nomad> +# Time-stamp: <2025-02-26 08:02:52 nomad> # Michel Le Cocq # @@ -70,6 +70,20 @@ # # +------------------------------------------------------------------------------------------------+ +function showsnap +{ + zfs list -o name,used,usedbysnapshots -r zroot/ROOT -s creation | grep -v '^zroot/ROOT .*' > /tmp/upsnap.tmp + for line in $(cat /tmp/upsnap.tmp | grep zroot | cut -d' ' -f1) + do + nbr=$(zfs list -H -t snapshot -r $line | wc -l) + z=$(echo $line | cut -d'/' -f3) + sed -i "/$z/ s/$/ $nbr/" /tmp/upsnap.tmp + done + sed -i "/USEDSNAP/ s/$/ NBRSNAP/" /tmp/upsnap.tmp + cat /tmp/upsnap.tmp + rm /tmp/upsnap.* +} + function cleansnap { printf '\nClean snapshot.\n' @@ -347,9 +361,10 @@ function usage() { echo "Usage: $(basename $0) [-h]" echo "-b : only check zfs boot menu" + echo "-s : only show zfs snap" } -while getopts 'hb' OPTION; do +while getopts 'hbs' OPTION; do case "$OPTION" in h) usage @@ -360,6 +375,11 @@ while getopts 'hb' OPTION; do echo exit 1 ;; + s) + showsnap + echo + exit 1 + ;; ?) usage exit 1