#!/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 } 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 } # TODO: restore fn ## # 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