Files
pfandsystem-demo/backup.sh

45 lines
1.1 KiB
Bash
Raw Normal View History

#!/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!"