66 lines
1.8 KiB
Bash
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_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" |