#!/bin/bash # Script Name: pbs-backup.v1.sh # Beschreibung: Erstellt Backups auf einem PBS # Aufruf: ./pbs-backup-script.v1_msmtp.sh # Autor: Patrick Asmus # Web: https://www.techniverse.net # Git-Reposit.: ssh://git@git.techniverse.net:10022/internal-infrastructure/pbs-backup-scripts.git # Version: 1.1 # Datum: 13.09.2024 # Modifikation: added email support ##################################################### # Variablen HOSTNAME="$(hostname)" export PBS_REPOSITORY="" export PBS_PASSWORD="" export PBS_FINGERPRINT="" MAIL_RECIPIENTS="" MAIL_NOTIFY_ON_SUCCESS=true MAIL_SUBJECT_SUCCESS=" ${HOSTNAME} | Backup erfolgreich abgeschlossen" MAIL_SUBJECT_FAILURE=" ${HOSTNAME} | Fehler beim Backup" LOGFILE=$(mktemp) # Verzeichnisse, die gesichert werden sollen INCLUDE_DIRS=( "/root" "/home" "/var/lib/docker/volumes/" ) BACKUP_COMMAND="proxmox-backup-client backup" for dir in "${INCLUDE_DIRS[@]}"; do dir_name=$(basename "$dir") BACKUP_COMMAND+=" ${dir_name}.pxar:${dir}" done echo "Starte das Backup..." eval "$BACKUP_COMMAND" &> "$LOGFILE" # Überprüfen, ob das Backup erfolgreich war if [ $? -eq 0 ]; then echo "Backup erfolgreich abgeschlossen." | tee -a "$LOGFILE" if [ "$MAIL_NOTIFY_ON_SUCCESS" = true ]; then { echo "Das Backup wurde erfolgreich abgeschlossen." echo "" echo "Ausgabe des Backups:" cat "$LOGFILE" } | mail -s "$MAIL_SUBJECT_SUCCESS" $MAIL_RECIPIENTS fi else echo "Fehler beim Backup." | tee -a "$LOGFILE" { echo "Es ist ein Fehler beim Backup aufgetreten." echo "" echo "Ausgabe des Backups:" cat "$LOGFILE" } | mail -s "$MAIL_SUBJECT_FAILURE" $MAIL_RECIPIENTS fi # Temporäre Datei löschen rm "$LOGFILE"