From 56e7ffa1333d38fd308b1f431d513e2c61d7597e Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Tue, 23 Sep 2025 18:22:33 +0000 Subject: [PATCH] Kapitel 13/Tutorial.md aktualisiert --- Kapitel 13/Tutorial.md | 52 +++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/Kapitel 13/Tutorial.md b/Kapitel 13/Tutorial.md index ccffcc7..857e4bf 100644 --- a/Kapitel 13/Tutorial.md +++ b/Kapitel 13/Tutorial.md @@ -605,7 +605,8 @@ In diesem Schritt erstellen wir den eigentlichen Workflow in **n8n**. Er sorgt d ```bash #!/usr/bin/env bash # /srv/clipper/bin/cleanup - # Cleanup für eine einzelne VOD_ID: Archivieren, Upload via SFTP, gezieltes Löschen + # Clipper-Cleanup für eine einzelne VOD_ID: + # Erstellt Archiv, lädt es via SFTP hoch, löscht OUT und TEMP immer, LOGS nur wenn älter als 30 Tage set -euo pipefail @@ -629,43 +630,59 @@ In diesem Schritt erstellen wir den eigentlichen Workflow in **n8n**. Er sorgt d # Logging vorbereiten # ------------------------------- TODAY="$(date +%F)" - LOGFILE="${CLIPPER_LOG}/clipper_cleanup_${VOD_ID}_${TODAY}.log" + LOG_DIR="${CLIPPER_LOG}/${VOD_ID}" + mkdir -p "$LOG_DIR" + LOGFILE="${LOG_DIR}/clipper_cleanup_${TODAY}.log" exec > >(tee -a "$LOGFILE") 2>&1 echo "===== 🧹 Starte Cleanup für VOD: $VOD_ID – $TODAY =====" # ------------------------------- - # Archiv erstellen + # Pfade definieren # ------------------------------- OUT_DIR="${CLIPPER_OUT}/${VOD_ID}" - ARCHIVE_PATH="${CLIPPER_OUT}/${VOD_ID}.tar.gz" + TEMP_DIR="${CLIPPER_TEMP}/${VOD_ID}" + LOG_VOD_DIR="${CLIPPER_LOG}/${VOD_ID}" + ARCHIVE_TEMP_PATH="${CLIPPER_OUT}/${VOD_ID}.tar.gz" + ARCHIVE_FINAL_PATH="${OUT_DIR}/${VOD_ID}.tar.gz" + # ------------------------------- + # Archiv erstellen (außerhalb, dann verschieben) + # ------------------------------- if [[ -d "$OUT_DIR" ]]; then - echo "📦 Erstelle Archiv aus: $OUT_DIR" - tar -czf "$ARCHIVE_PATH" -C "$CLIPPER_OUT" "$VOD_ID" + echo "📦 Erstelle temporäres Archiv (ohne Selbstreferenz): $ARCHIVE_TEMP_PATH" + tar -czf "$ARCHIVE_TEMP_PATH" -C "$CLIPPER_OUT" "$VOD_ID" + + echo "📂 Verschiebe Archiv in VOD-Ordner: $ARCHIVE_FINAL_PATH" + mv "$ARCHIVE_TEMP_PATH" "$ARCHIVE_FINAL_PATH" else echo "⚠️ OUT-Verzeichnis fehlt: $OUT_DIR" exit 2 fi # ------------------------------- - # SFTP-Upload + # Archiv hochladen per SFTP # ------------------------------- - echo "🔼 Lade Archiv nach: ${SFTP_DROP_BASE}/${VOD_ID}.tar.gz" + echo "🔼 Lade Archiv hoch: ${SFTP_DROP_BASE}/${VOD_ID}.tar.gz" sftp -i "$SFTP_KEY" -P "$SFTP_PORT" -oStrictHostKeyChecking=no "$SFTP_USER@$SFTP_HOST" < 30 )); then - echo "🧹 Entferne LOGS (älter als 30 Tage): $LOG_DIR" - rm -rf "$LOG_DIR" + echo "🧹 Entferne LOGS (älter als 30 Tage): $LOG_VOD_DIR" + rm -rf "$LOG_VOD_DIR" else echo "ℹ️ LOG-Verzeichnis ist nur $AGE_DAYS Tage alt – wird behalten." fi else - echo "ℹ️ Kein LOG-Verzeichnis vorhanden." + echo "ℹ️ Kein LOG-Verzeichnis vorhanden für VOD: $VOD_ID" fi echo "✅ Cleanup abgeschlossen für VOD: $VOD_ID"