init backup scripts
This commit is contained in:
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source /home/nico/backup/lib.sh
|
||||
|
||||
# ================================
|
||||
# Einstellungen
|
||||
# ================================
|
||||
MAILCOW_DIR="$HOME/docker-setup/mailcow"
|
||||
TMP_BASE="/home/nico/backup/tmp/mailcow"
|
||||
TMP_BACKUP_DIR="$TMP_BASE/backups"
|
||||
REMOTE="onedrive-tdhaider:/IONOS/Backups/mailcow"
|
||||
DATE=$(date +%F_%H-%M-%S)
|
||||
|
||||
# ================================
|
||||
# Vorbereitung
|
||||
# ================================
|
||||
log "📂 Bereite temporäres Verzeichnis vor..."
|
||||
rm -rf "$TMP_BASE"
|
||||
mkdir -p "$TMP_BACKUP_DIR"
|
||||
|
||||
cd "$MAILCOW_DIR" || fail "mailcow Verzeichnis nicht gefunden!"
|
||||
|
||||
# ================================
|
||||
# Mailcow Full Backup
|
||||
# ================================
|
||||
log "📦 Starte mailcow FULL Backup (backup all)..."
|
||||
|
||||
MAILCOW_BACKUP_LOCATION="$TMP_BACKUP_DIR" \
|
||||
./helper-scripts/backup_and_restore.sh backup all
|
||||
|
||||
# ================================
|
||||
# Letztes Backup finden
|
||||
# ================================
|
||||
LATEST_BACKUP=$(ls -dt "$TMP_BACKUP_DIR"/mailcow-* | head -n 1)
|
||||
|
||||
if [ ! -d "$LATEST_BACKUP" ]; then
|
||||
log "❌ Kein mailcow Backup gefunden!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BACKUP_NAME=$(basename "$LATEST_BACKUP")
|
||||
ARCHIVE="/tmp/${BACKUP_NAME}_${DATE}.tar.zst"
|
||||
|
||||
# ================================
|
||||
# Komprimieren
|
||||
# ================================
|
||||
log "🗜️ Komprimiere Backup → $ARCHIVE"
|
||||
|
||||
tar --use-compress-program=zstd -cf "$ARCHIVE" \
|
||||
-C "$TMP_BACKUP_DIR" "$BACKUP_NAME"
|
||||
|
||||
# ================================
|
||||
# Upload
|
||||
# ================================
|
||||
log "☁️ Lade Backup zu OneDrive hoch..."
|
||||
upload "$ARCHIVE" "$REMOTE"
|
||||
log "✅ Upload abgeschlossen!"
|
||||
|
||||
cleanup_keep_latest "$REMOTE" 2
|
||||
log "✅ Cleanup abgeschlossen!"
|
||||
|
||||
# ================================
|
||||
# Aufräumen
|
||||
# ================================
|
||||
[[ -d "$TMP_BASE" ]] && rm -rf "$TMP_BASE"
|
||||
[[ -d "$ARCHIVE" ]] && rm -f "$ARCHIVE"
|
||||
|
||||
log "🧹 Temporäre Dateien gelöscht."
|
||||
log "🏁 mailcow FULL Backup abgeschlossen!"
|
||||
Reference in New Issue
Block a user