From f45988d0e7ad9e467afa5025180c1f42f21ac4c7 Mon Sep 17 00:00:00 2001 From: AIIrondev Date: Fri, 17 Jul 2026 15:06:45 +0200 Subject: [PATCH] changes to the backlupo --- backup.sh | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/backup.sh b/backup.sh index d0c33d1..7609b62 100755 --- a/backup.sh +++ b/backup.sh @@ -4,7 +4,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" COMPOSE_FILE="docker-compose-multitenant.yml" -# Verzeichnisse +# Directories INVOICE_ARCHIVE_DIR="${INVOICE_ARCHIVE_DIR:-/var/backups/invoice-archive}" FULL_BACKUP_DIR="${FULL_BACKUP_DIR:-/var/backups/inventarsystem}" LOG_DIR="$SCRIPT_DIR/logs" @@ -67,7 +67,6 @@ cleanup_old_archives() { if [[ -n "$KEEP_DAYS" ]]; then find "$INVOICE_ARCHIVE_DIR" -maxdepth 1 -type f -mtime +"$KEEP_DAYS" -print -delete 2>/dev/null || true fi - # Behalte die kompletten DB-Backups für 30 Tage find "$FULL_BACKUP_DIR" -maxdepth 1 -type f -mtime +30 -print -delete 2>/dev/null || true } @@ -82,23 +81,23 @@ docker_backup() { local timestamp timestamp="$(date +'%Y-%m-%d_%H-%M-%S')" - echo "[$(date +'%T')] Starte VOLLSTAENDIGES System-Backup..." + echo "[$(date +'%T')] Starting full system backup..." - # 1. MongoDB Full Dump (Alles: Ausleihen, User, Inventar, etc.) + # 1. Full MongoDB Dump if docker compose -f "$COMPOSE_FILE" ps -q mongodb >/dev/null 2>&1; then - echo "[$(date +'%T')] Erstelle Datenbank-Dump (MongoDB)..." + echo "[$(date +'%T')] Creating MongoDB dump..." docker compose -f "$COMPOSE_FILE" exec -T mongodb mongodump --archive --gzip > "$FULL_BACKUP_DIR/full_db_${timestamp}.archive.gz" else - echo "Warnung: MongoDB-Container nicht gefunden. Überspringe DB-Dump." + echo "Warning: MongoDB container not found. Skipping DB dump." fi - # 2. Logs sichern + # 2. Archive Logs if [ -d "$LOG_DIR" ]; then - echo "[$(date +'%T')] Sichere Logs..." + echo "[$(date +'%T')] Archiving logs..." tar -czf "$FULL_BACKUP_DIR/logs_${timestamp}.tar.gz" -C "$(dirname "$LOG_DIR")" "$(basename "$LOG_DIR")" fi - # 3. Invoice Export (für Kompatibilität mit dem alten Format) + # 3. Legacy Invoice Export local app_container app_container="$(docker compose -f "$COMPOSE_FILE" ps -q app | tr -d '[:space:]')" if [[ -n "$app_container" ]]; then @@ -116,14 +115,12 @@ docker_backup() { docker cp "$app_container":"${remote_base}.csv" "$INVOICE_ARCHIVE_DIR/" docker cp "$app_container":"${remote_base}.meta.json" "$INVOICE_ARCHIVE_DIR/" else - echo "[$(date +'%T')] Info: Keine Rechnungsdaten gefunden." + echo "[$(date +'%T')] Info: No invoice records found to export." fi docker compose -f "$COMPOSE_FILE" exec -T app rm -rf "$output_dir" fi - echo "[$(date +'%T')] Backup erfolgreich abgeschlossen!" - echo "Dateien gespeichert in: $FULL_BACKUP_DIR" return 0 } @@ -142,7 +139,7 @@ main() { cleanup_old_archives return 0 fi - echo "Error: Docker Backup fehlgeschlagen." >&2 + echo "Error: Docker backup failed." >&2 return 1 ;; *)