auto-backup-Mimik steht
This commit is contained in:
1 parent
1fcdb5669a
commit
22d9442b42
17 files changed
+223
-738
No files matched your search
+23
-86
@@ -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
|
||||
}
|
||||
Reference in new issue
Block a user