#!/bin/bash set -euo pipefail source /home/nico/backup/lib.sh # ================================ # Einstellungen # ================================ CONTAINER="postgresql" # Name deines PostgreSQL-Docker-Containers DB_USER="nico" # PostgreSQL-User BACKUP_DIR="/home/nico/backup/tmp/postgresql_backups" # Temporärer Backup-Pfad auf dem Server REMOTE="onedrive-tdhaider:/IONOS/Backups" # Basisziel auf OneDrive DATE=$(date +%F_%H-%M-%S) # ================================ # Backup-Ordner vorbereiten # ================================ mkdir -p "$BACKUP_DIR" # ================================ # Funktion: Backup einer DB # ================================ backup_db() { local DB_NAME=$1 local FILE="$BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz" log "📦 Backup starte für Datenbank: $DB_NAME ..." docker exec -t "$CONTAINER" pg_dump -U "$DB_USER" "$DB_NAME" | gzip > "$FILE" \ || fail "Fehler beim Backup von $DB_NAME" # Upload in eigenen Unterordner log "☁️ Lade $DB_NAME Backup zu OneDrive hoch ..." upload "$FILE" "$REMOTE/postgresql_$DB_NAME" log "✅ Upload abgeschlossen!" cleanup_keep_latest "$REMOTE/postgresql_$DB_NAME" 30 log "✅ Cleanup abgeschlossen!" } # ================================ # Datenbanken sichern und hochladen # ================================ backup_db "gitea" backup_db "projektverwaltung" # ================================ # Lokale Backups aufräumen (optional) # ================================ [[ -d "$BACKUP_DIR" ]] && rm -rf "$BACKUP_DIR" log "🧹 Lokale temporäre Backups gelöscht." log "🏁 Alle Backups abgeschlossen!"