From 54d04b8f134b8dfe8f37df46801ae66d3e45cac8 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 24 May 2025 15:19:08 +0200 Subject: [PATCH] change clean up backups --- backup | 79 ++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/backup b/backup index 3bfdf61..ac27188 100755 --- 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" } -- 2.39.5