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
}
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
fi
done
printf "\n"
- printfStripLine
+ print_line
}
## @fn 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"
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"
}