fix for do_backup()

This commit is contained in:
Hartmut Bauer committed 2025-03-23 01:37:19 +01:00
1 parent 22d9442b42
commit 050c3ccd9e
8 files changed
+38 -53

No files matched your search

+17 -11
View File
@@ -91,7 +91,7 @@ check_directory() {
#
delete_dir() {
local dir=$1
sudo rm -rf "$dir" && return 0
sudo rm -rf $dir/* && return 0
log ERROR "### could not delete directory $1!"
# return error, so caller can decide what to do
return 1
@@ -152,24 +152,30 @@ backup_dir() {
# hostname-scripte setzen vars und definieren Funktionen backup_daily1, 2, usw. und backup_weekly1, 2, usw.
# in den Funktionen werden die vars für den einzelnen backup gesetzt (target, excludes, usw.)
# hier wird dann dass hostname-script gesourced (s.o.) und in einer Schleife werden die
# entsprechenden backup_*-Funktionen aufgerufen
# entsprechend en backup_*-Funktionen aufgerufen
#
do_auto_backup() {
local func=$1
local count=1
before_backup
while [ $(isFunction $func$count) ]; do
func$count
# vars defined in $func$count in $HOST_NAME.sh
delete_dir "$BACKUP_TARGET" # bei Fehler werden die Dateien hoffentlich überschrieben
check_directory "$BACKUP_TARGET"
backup_all_dirs "$BACKUP_SOURCE" "$BACKUP_TARGET" "${BACKUP_EXCLUDE_DIRS[@]}"
if ! $func§count 2>/dev/null ; then # Seiteneffekt: $func$count wird ausgeführt
echo "ERROR: keine Backup-Functions für $HOST_NAME."
exit 1
fi
before_backup
delete_dir "$BACKUP_TARGET"
check_directory "$BACKUP_TARGET"
# ab hier std logging (Datei ist in $BACKUP_TARGET)
do
backup_all_dirs "$BACKUP_SOURCE" "$BACKUP_TARGET" "${BACKUP_EXCLUDE_DIRS[@]}"
let "count += 1"
done
until ! $func$count 2>/dev/null # Seiteneffekt: $func$count wird ausgeführt (für nächste Schleife)
after_backup
}
# TODO LOG_FILE="$NAS_ROOT/log/$HOST_NAME-backup-media.log"
backup_daily() {
do_auto_backup backup_daily
}