51 lines
1.6 KiB
Bash
Executable File
51 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
source /home/nico/backup/lib.sh
|
|
source /home/nico/docker-setup/mongodb/.env
|
|
|
|
# ================================
|
|
# Einstellungen
|
|
# ================================
|
|
CONTAINER="mongodb" # Name deines MongoDB-Docker-Containers
|
|
DB_USER="${MONGO_ROOT_USER}" # MongoDB Root-User (aus .env)
|
|
DB_PASS="${MONGO_ROOT_PASSWORD}" # MongoDB Root-Passwort (aus .env)
|
|
BACKUP_DIR="/home/nico/backup/tmp/mongodb_backups" # Temporärer Backup-Pfad auf dem Server
|
|
REMOTE="onedrive-tdhaider:/IONOS/Backups/mongodb" # Ziel auf OneDrive
|
|
|
|
DATE=$(date +%F_%H-%M-%S)
|
|
FILE="$BACKUP_DIR/mongodb_all_${DATE}.archive.gz"
|
|
|
|
# ================================
|
|
# Backup-Ordner vorbereiten
|
|
# ================================
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
# ================================
|
|
# Backup aller Datenbanken
|
|
# ================================
|
|
log "📦 Backup starte für alle MongoDB-Datenbanken ..."
|
|
docker exec -t "$CONTAINER" mongodump \
|
|
--username "$DB_USER" \
|
|
--password "$DB_PASS" \
|
|
--authenticationDatabase admin \
|
|
--archive \
|
|
| gzip > "$FILE" \
|
|
|| fail "Fehler beim MongoDB-Backup"
|
|
|
|
# ================================
|
|
# Upload zu OneDrive
|
|
# ================================
|
|
log "☁️ Lade Backup zu OneDrive hoch ..."
|
|
upload "$FILE" "$REMOTE"
|
|
log "✅ Upload abgeschlossen!"
|
|
|
|
cleanup_keep_latest "$REMOTE" 30
|
|
log "✅ Cleanup abgeschlossen!"
|
|
|
|
# ================================
|
|
# Lokale Backups aufräumen
|
|
# ================================
|
|
[[ -d "$BACKUP_DIR" ]] && rm -rf "$BACKUP_DIR"
|
|
log "🧹 Lokale temporäre Backups gelöscht."
|
|
|
|
log "🏁 MongoDB-Backup abgeschlossen!" |