initial, doku folgt.
This commit is contained in:
66
v1/pbs-backup.v1.sh
Normal file
66
v1/pbs-backup.v1.sh
Normal file
@@ -0,0 +1,66 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user