#!/bin/bash # Erstellt Backups der UniFi Network Application. # # ./backup.sh Kopiert die UniFi-Autobackups (.unf) nach ./backups/ # ./backup.sh --full Komplett-Backup: stoppt die Container und packt das # gesamte ./data-Verzeichnis als tar.gz nach ./backups/ # # .unf-Dateien lassen sich über die UniFi-Weboberfläche wiederherstellen, # das Komplett-Backup über ./restore.sh set -euo pipefail cd "$(dirname "$0")" BACKUP_DIR="./backups" AUTOBACKUP_DIR="./data/unifi/data/backup/autobackup" STAMP="$(date +%Y-%m-%d_%H-%M-%S)" mkdir -p "$BACKUP_DIR" if [[ "${1:-}" == "--full" ]]; then echo "==> Komplett-Backup: Container werden kurz gestoppt..." docker-compose stop tar czf "$BACKUP_DIR/unifi-full-backup_${STAMP}.tar.gz" data docker-compose start echo "==> Fertig: $BACKUP_DIR/unifi-full-backup_${STAMP}.tar.gz" else if [[ -d "$AUTOBACKUP_DIR" ]] && compgen -G "$AUTOBACKUP_DIR/*.unf" > /dev/null; then DEST="$BACKUP_DIR/autobackup_${STAMP}" mkdir -p "$DEST" cp "$AUTOBACKUP_DIR"/*.unf "$DEST/" echo "==> UniFi-Autobackups kopiert nach: $DEST" ls -lh "$DEST" else echo "Noch keine Autobackups vorhanden ($AUTOBACKUP_DIR)." echo "Autobackups in der UniFi-Weboberfläche aktivieren:" echo " Einstellungen -> System -> Backups -> Automatische Sicherung" echo "Alternativ Komplett-Backup erstellen mit: ./backup.sh --full" fi fi echo "" echo "Vorhandene Backups in $BACKUP_DIR:" ls -lh "$BACKUP_DIR" | tail -n +2 || true