diff --git a/proxmox-backup-script.sh b/proxmox-backup-script.sh new file mode 100644 index 0000000..cec529d --- /dev/null +++ b/proxmox-backup-script.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# Script Name: proxmox-backup-script.sh +# Beschreibung: Macht ein Backup aller Proxmox Konfigurationen und speichert sie an den Ort der Wahl +# Aufruf: ./bash proxmox-backup-script.sh +# Autor: Patrick Asmus +# Web: https://www.media-techport.de +# Git-Reposit.: https://git.media-techport.de/scriptos/backup-script-collection +# Version: 1.0 +# Datum: 24.09.2023 +# Modifikation: Neuerstellung +##################################################### + +# Variablen +BACKUP_DIR="/home/backups/pve" +NUM_BACKUPS_TO_KEEP=5 +EMAIL_ADDRESS="system@media-techport.de" + +LOGDIR="/var/log/script-logs" +DATE=$(date +%Y%m%d%H%M%S) +BACKUP_FILE="proxmox_backup_$DATE.tar.gz" +LOG_FILE="$LOGDIR/proxmox_backup_$DATE.log" + +# Globale Funktionen +PROXMOX_DIRS_AND_CONFIG=( + "etc/pve/" + "var/lib/vz/" + "var/lib/qemu-server/" + "etc/network/interfaces" + "etc/network/interfaces.d/" +) + +# Script +mkdir -p "$LOGDIR" +exec > >(tee -a "$LOG_FILE") 2>&1 + +mkdir -p "$BACKUP_DIR" + +# Erstelle Backup der Proxmox Konfigurationen +echo "Sichere Proxmox-Verzeichnisse und Konfigurationen..." +tar czf "$BACKUP_DIR/$BACKUP_FILE" -C / "${PROXMOX_DIRS_AND_CONFIG[@]}" + +# Prüfen, ob das Backup erfolgreich erstellt wurde +if [ $? -eq 0 ]; then + echo "Proxmox-Backup wurde erfolgreich unter $BACKUP_DIR/$BACKUP_FILE erstellt." + + # Alte Backups bereinigen, wenn die Anzahl der aufzubewahrenden Backups überschritten ist + while [ $(ls -1 "$BACKUP_DIR" | wc -l) -gt $NUM_BACKUPS_TO_KEEP ]; do + OLD_BACKUP=$(ls -1t "$BACKUP_DIR" | tail -n 1) + rm -f "$BACKUP_DIR/$OLD_BACKUP" + echo "Ältestes Backup ($OLD_BACKUP) wurde gelöscht." + done +else + echo "Fehler beim Erstellen des Backups. Eine Benachrichtigung wird gesendet." + + # E-Mail-Benachrichtigung senden + SUBJECT="Backup der Proxmox Konfigurations auf <${HOSTNAME}> fehlgeschlagen" + MESSAGE="Fehler beim Erstellen des Backups der Konfiguration auf ${HOSTNAME}. Bitte prüfen!" + echo "$MESSAGE" | mail -s "$SUBJECT" "$EMAIL_ADDRESS" +fi