auto-backup-Mimik steht

This commit is contained in:
Hartmut Bauer committed 2025-03-22 00:36:45 +01:00
1 parent 1fcdb5669a
commit 22d9442b42
17 files changed
+223 -738

No files matched your search

+23 -86
View File
@@ -1,96 +1,33 @@
#!/usr/bin/eval bash
# TODO: cmd line handling
# fn für div. Aktionen (gemeinsame?)
NAS_ROOT=/volume1/nfs/backups
backup_media() {
TARGET_DIR="$NAS_ROOT/weekly/$HOST_NAME"
LOG_FILE="$NAS_ROOT/log/$HOST_NAME-backup-media.log"
log INFO "*** *** Begin NAS backup (media/books, media/music)"
EXCLUDE_DIRS=("@eaDir" "Temporary Items" "lost+found" serien tmp video "video.archive")
check_directory $TARGET_DIR
# media/books media/music
backup_all_dirs "/volume1/media" "$TARGET_DIR" "${EXCLUDE_DIRS[@]}"
log INFO "*** End of NAS backup"
list_archives $TARGET_DIR
#
# ACHTUNG: BACKUP_TARGET wird für jeden Lauf _daily1, 2, usw. geköscht,
# es muss sich also für alle _daily?, bzw. _weekly? unterscheiden
#
backup_daily1() {
BACKUP_SOURCE="/volume1/data"
BACKUP_TARGET="$NAS_ROOT/daily/$HOST_NAME/backup.$DAY/data"
BACKUP_EXCLUDE_DIRS=("@eaDir" "Temporary Items" "lost+found")
}
backup_daily2() {
BACKUP_SOURCE="/volume1/nfs"
BACKUP_TARGET="$NAS_ROOT/daily/$HOST_NAME/backup.$DAY/nfs"
BACKUP_EXCLUDE_DIRS=("@eaDir" "Temporary Items" "lost+found" backups)
}
backup_data() {
TARGET_DIR="$NAS_ROOT/daily/$HOST_NAME/backup.$DAY"
LOG_FILE="$NAS_ROOT/log/$HOST_NAME-backup.log"
log INFO "*** *** Begin NAS backup (data, nfs)"
EXCLUDE_DIRS=("@eaDir" "Temporary Items" "lost+found")
delete_dir $TARGET_DIR # bei Fehler werden die Dateien hoffentlich überschrieben
check_directory $TARGET_DIR
# data
backup_all_dirs "/volume1/data" "$TARGET_DIR" "${EXCLUDE_DIRS[@]}"
EXCLUDE_DIRS=("@eaDir" "Temporary Items" "lost+found" backups)
# nfs
backup_all_dirs "/volume1/nfs" "$TARGET_DIR" "${EXCLUDE_DIRS[@]}"
log INFO "*** End of NAS backup"
list_archives $TARGET_DIR
backup_weekly1() {
BACKUP_SOURCE="/volume1/media"
BACKUP_TARGET="$NAS_ROOT/weekly/$HOST_NAME"
BACKUP_EXCLUDE_DIRS=("@eaDir" "Temporary Items" "lost+found" serien tmp video "video.archive")
}
# TODO: restore fn
before_backup() {
# nothing to do
}
##
# auto backup handling
#
# 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 backuü gesetzt (target, excludes, usw.)
# im main-script wird dann dass hostname-script gesourced und in einer Schleife werden die
# entsprechenden backup_*-Funktionen aufgerufen
#
# count=1
# while [ $(isFunction backup_daily$count) ]; do
# backup_daily$count # setzt die nötigen vars für den backup
# do_backup "daily"
# let "count += 1"
# done
#
while :; do
case $1 in
--daily)
backup_data
break
;;
--weekly)
backup_media
break
;;
-l|--list)
list_archives "$NAS_ROOT"
break;
;;
-c|--content)
if [ "$2" ]; then
list_archive_content "$NAS_ROOT" "$2"
else
echo 'ERROR: "--content" requires a non-empty option argument.'
fi
break
;;
--restore)
# TODO
break
;;
*) # Default case: No more options, so break out of the loop.
break
esac
shift
done
after_backup() {
# nothing to do
}