]> gitweb.hhaalo.de Git - simple-backup.git/commitdiff
change clean up backups
authorBastian Dehn <hhaalo@arcor.de>
Sat, 24 May 2025 13:19:08 +0000 (15:19 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 24 May 2025 13:19:08 +0000 (15:19 +0200)
backup

diff --git a/backup b/backup
index 3bfdf61b983c64240383e963cf6a424800845d94..ac2718848526190d3832b3900c477a9db7dc7267 100755 (executable)
--- a/backup
+++ b/backup
@@ -127,39 +127,50 @@ backup_remotes()
        done
 }
 
-## @fn LoescheVerzeichnis()
-## @brief Loeschung von aeltestem Backup
-LoescheVerzeichnisse()
+remove_backup_dir()
 {
-       for i in $(ls --directory $backpath/*/ | grep "_$backname" \
-               --max-count=$loeschanzahl); do
-               printf "Lösche %s\n" $i
-               rm --recursive $i
+       local backup_path="$1"
+       local backup_name="$2"
+       local delete_count=$3
+
+       local backups=$(ls --directory $backup_path/*/ \
+               | grep "_$backup_name" \
+               --max-count=$delete_count);
+       local backups=$(find $backup_path -name "*$backup_name" \
+               | sort \
+               | head --lines $delete_count)
+
+       for backup in $backups; do
+               echo "🗑️ DELETE: $backup"
+               rm --recursive $backup
        done
 }
 
-## @fn CleanUpBackups()
-## @brief Zeigt an wieviele Backups vorhanden sind
-CleanUpBackups()
+cleanup_backups()
 {
-       backupanzahl=$(ls --directory $backpath/*/ | grep "_$backname" | sort \
+       local backup_path="$1"
+       local backup_name="$2"
+       local backup_count=$3
+
+       local backup_counted=$(ls --directory $backup_path/*/ \
+               | grep "_$backup_name" \
+               | sort \
                | wc --lines)
-       loeschanzahl=$(($backupanzahl - $wunschanzahl))
+       local delete_count=$(( backup_counted - backup_count ))
 
-       if [ $backupanzahl -gt $wunschanzahl ]
-       then
-               printfStripLine
+       if [ $backup_counted -gt $backup_count ]; then
+               print_line
                printf "\n"
-               printf "Es sind %i Sicherungen vorhanden.\n" $backupanzahl
-               printf "Es werden %i Sicherungen gelöscht.\n\n" $loeschanzahl
-               LoescheVerzeichnisse
+               printf "Es sind %i Sicherungen vorhanden.\n" $backup_counted
+               printf "Es werden %i Sicherungen gelöscht.\n\n" $delete_count
+               remove_backup_dir "$backup_path" "$backup_name" $delete_count
                printf "\n"
-               printfStripLine
+               print_line
        else
-               printfStripLine
+               print_line
                printf "\n"
-               printf "Es sind %i Sicherungen vorhanden.\n\n" $backupanzahl
-               printfStripLine
+               printf "Es sind %i Sicherungen vorhanden.\n\n" $backup_counted
+               print_line
        fi
 }
 
@@ -192,12 +203,14 @@ make_history()
        fi
 }
 
-## @fn CheckBackupDate()
-## @brief Zeigt die letzte Sicherung in gruen oder rot an.
-CheckBackupDate()
+check_backup_date()
 {
+       local LIGHTRED="\e[1;31m"
+       local LIGHTGREEN="\e[1;32m"
+       local RESET="\e[0m"
        local color=$LIGHTGREEN
-       printfStripLine
+
+       print_line
        printf "\n"
        for i in day week month; do
                if [ -f "$i" ]; then
@@ -214,7 +227,7 @@ CheckBackupDate()
                fi
        done
        printf "\n"
-       printfStripLine
+       print_line
 }
 
 ## @fn IsBackupOld()
@@ -250,14 +263,11 @@ IsBackupOld()
        esac
 }
 
-## @fn main()
-## @brief Hauptablauf des Skriptes
 main()
 {
        local only_check="$1"
 
-       [ "$only_check" == "check" ] && CheckBackupDate && return 0
-
+       [ "$only_check" == "check" ] && check_backup_date && return 0
 
        echo "⭐ START: backup"
 
@@ -306,11 +316,8 @@ main()
 
        backup_remotes "$backup_full_path" "$last_backup_dir_path"
        make_history $backup_path
-       return
-
-       CheckBackupDate
-
-       CleanUpBackups
+       check_backup_date
+       cleanup_backups "$backup_path" "$backup_name" $backup_count
 
        echo "✅ SUCCESS: backup"
 }