From d7495b0210a612a32a4a45a9aa75f50c8ee7a87e Mon Sep 17 00:00:00 2001 From: Someone Date: Tue, 21 Jan 2014 16:38:24 +0100 Subject: [PATCH] cleaner now cleans to 90% usage. --- cleaner.sh | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/cleaner.sh b/cleaner.sh index c092522..eeacf78 100755 --- a/cleaner.sh +++ b/cleaner.sh @@ -29,6 +29,7 @@ LASTLIST="root home homeroot" let MINSNAPCNT=3*5 let MAXSNAPCNT=3*333 MAXSPACEPERCENT=90 +MAXDELLOOP="50" echo "***START: `date`***" if [ -e /tmp/btrfs_cleaner.lock ]; then @@ -84,10 +85,7 @@ done # CLEAN *.snap if needed (too many or low on space) -LOOPDEL=2 -while [ $LOOPDEL -eq 2 ]; do - LOOPDEL=1 - +while [ $MAXDELLOOP -gt 0 ]; do btrfs fi show $(mount -l | grep inthdd | cut -f1 -d ' ' | uniq) &> /tmp/btrfs_fishow.txt SPACESIZE="`grep 'size' /tmp/btrfs_fishow.txt | sed -E 's~^.*?size ([0-9]+\.[0-9]*)GiB .*?$~\1~g'`" SPACEUSED="`grep 'bytes used' /tmp/btrfs_fishow.txt | sed -E 's~^.*?bytes used ([0-9]+\.[0-9]*)GiB.*?$~\1~g'`" @@ -103,16 +101,21 @@ while [ $LOOPDEL -eq 2 ]; do if [ $SNAPCNT -gt $MAXSNAPCNT -o $SPACEPERCENT -gt $MAXSPACEPERCENT ]; then DELFILE="`find . -maxdepth 1 -name '*.snap' | sort | head -n -${MINSNAPCNT} | head -n 1`" if [ $SNAPCNT -gt $MINSNAPCNT -a "$DELFILE" != "" ]; then - btrfs subvolume delete "${DELFILE}" && LOOPDEL=2 + btrfs subvolume delete "${DELFILE}" && MAXDELLOOP=$(echo "$MAXDELLOOP-1" | bc) fi + else + MAXDELLOOP="-1" fi - if [ "$1" == "noloop" -a $LOOPDEL -eq 2 ]; then + if [ "$1" == "noloop" ]; then + MAXDELLOOP="0" echo "Autosnap cleaner: noloop flag set. forcing break." - LOOPDEL=1 fi - if [ $LOOPDEL -eq 2 ]; then + if [ $MAXDELLOOP -gt 0 ]; then sleep 60 fi + if [ $MAXDELLOOP -eq 0 ]; then + echo "Autosnap cleaner: LOOP-LIMIT reached. forcing break." + fi done cd /tmp -- 2.43.0