2025-08-23 11:46:26 +02:00

66 lines
1.8 KiB
Bash

#!/bin/bash
# Script Name: pbs-backup.v1.sh
# Beschreibung: Erstellt Backups auf einem PBS
# Aufruf: ./pbs-backup-script.v1.sh
# Autor: Patrick Asmus
# Web: https://www.techniverse.net
# Git-Reposit.: https://git.techniverse.net/scriptos/pbs-backup-client-script.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"