#!/bin/bash # Backup-Script für Pfandsystem MySQL Datenbank set -e # Konfiguration BACKUP_DIR="/root/backups" DATE=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="$BACKUP_DIR/pfandsystem_backup_$DATE.sql" RETENTION_DAYS=30 # Backup-Verzeichnis erstellen mkdir -p "$BACKUP_DIR" echo "🗄️ Starte Datenbank-Backup..." # MySQL Backup erstellen docker exec pfandsystem-mysql mysqldump \ -u pfandsystem \ -ppfandsystem_secure_password \ --single-transaction \ --routines \ --triggers \ pfandsystem > "$BACKUP_FILE" # Komprimieren gzip "$BACKUP_FILE" BACKUP_FILE="$BACKUP_FILE.gz" echo "✅ Backup erstellt: $BACKUP_FILE" # Backup-Größe anzeigen SIZE=$(du -h "$BACKUP_FILE" | cut -f1) echo "📊 Backup-Größe: $SIZE" # Alte Backups löschen (älter als RETENTION_DAYS) echo "🧹 Lösche alte Backups (älter als $RETENTION_DAYS Tage)..." find "$BACKUP_DIR" -name "pfandsystem_backup_*.sql.gz" -mtime +$RETENTION_DAYS -delete # Anzahl verbleibender Backups BACKUP_COUNT=$(ls -1 "$BACKUP_DIR"/pfandsystem_backup_*.sql.gz 2>/dev/null | wc -l) echo "📁 Anzahl Backups: $BACKUP_COUNT" echo "✅ Backup abgeschlossen!"