diff --git a/Backup/restic-backup-script.sh b/Backup/restic-backup-script.sh index ace2f8a..ea8c99f 100644 --- a/Backup/restic-backup-script.sh +++ b/Backup/restic-backup-script.sh @@ -1,26 +1,52 @@ #!/bin/bash -# Das Skript funktioniert nur, wenn der restic server authentication deaktiviert hat. +# ======== Bash Einstellungen ======= +set -euo pipefail +set +H -# Das Skript braucht unter Umständen root/sudo Rechte. -# Für einen cronjob sollte das Skript desshalb im Crontab des root-Users eingebunden werden -# um crontab zu bearbeiten 'crontab -e' ausführen und Script mit entsprechenden Parametern einfügen -# -# Zuerst muss ein restic Repository erstellt werden: -# restic -r rest:http://:/target-dest/ init -### Backup-Pfade ### -BACKUP_PATH="/paht/to/local/directory" +# ======== Konfiguration ======== +BACKUP_PATH_1="/path/to/local/directory" +BACKUP_PATH_2="/path/to/local/directory" +REPO="" +PW_FILE="" +LOG_FILE="" +RESTIC_BIN="/usr/bin/restic" # ggf. anpassen -### Restic Flags ### -set +H # ????? +# ======= Umgebungsvariablen ======= +export RESTIC_REPOSITORY="$REPO" +export RESTIC_PASSWORD_FILE="$PW_FILE" -### Restic Konfiguration ### -export RESTIC_REPOSITORY="rest:http://:/repository/" -export RESTIC_PASSWORD="1234" # sicheres Passwort setzen -### Alte Backups aufräumen ### -restic forget --keep-last 3 --prune +# ======= Logging ======= +exec > >(tee -a "$LOGFILE") 2>&1 +trap 'echo "Fehler beim Backup!" >&2; exit 1' ERR -### Backup durchführen ## -restic backup "BACKUP_PATH" --tag "" + +# ======== Backups für 3 Tage behalten ======== +"$RESTIC_BIN" forget --keep-last 3 --prune + + +# ======== ASCII ======== +cat << "EOF" + ____ _ _ +| _ \ ___ ___| |_(_) ___ +| |_) / _ \/ __| __| |/ __| +| _ < __/\__ \ |_| | (__ +|_| \_\___||___/\__|_|\___| + +EOF + + +# ======== Backup durchführen ======== +echo " ==== Backup starten =====" + +if [[ -n "$BACKUP_PATH_1" ]]; then + "RESTIC_BIN" backup "$BACKUP_PATH_1" --tag "" +fi + +if [[ -n "$BACKUP_PATH_2" ]]; then + "RESTIC_BIN" backup "$BACKUP_PATH_2" --tag "" +fi + +echo "==== Backup abgeschlossen ====