#!/usr/bin/env bash set -euo pipefail # Verzeichnis deines Inventar-Repos (lokal auf Falkenstein!) INVENTORY_DIR="/opt/hx-ki/repos/hxki-inventory" REPORT_DIR="/opt/hx-ki/reports" mkdir -p "$REPORT_DIR" TS="$(date +"%Y-%m-%d_%H%M%S")" OUT="${REPORT_DIR}/HXKI_System_BirthCertificate_${TS}.txt" { echo "=== HXKI SYSTEM GEBURTSURKUNDE ===" echo "Quelle: $INVENTORY_DIR" echo "Zeitpunkt: $(date)" echo echo "1) Gesamtübersicht" echo "------------------" echo -n "Gesamtgröße des Tresors: " du -sh "$INVENTORY_DIR" | awk '{print $1}' echo -n "Anzahl Dateien gesamt: " find "$INVENTORY_DIR" -type f | wc -l echo echo "2) Verzeichnisstruktur (Top-Level, Tiefe 2)" echo "------------------------------------------" find "$INVENTORY_DIR" -maxdepth 2 -type d | sed "s|$INVENTORY_DIR|.|" echo echo "3) Größte 20 Dateien im Tresor" echo "------------------------------" # benötigt GNU find (auf Ubuntu Standard) find "$INVENTORY_DIR" -type f -printf '%s %p\n' \ | sort -nr \ | head -20 \ | awk '{printf "%10.1f MB %s\n", $1/1024/1024, $2}' echo echo "4) Inventar- und Log-Dateien (Auszug)" echo "-------------------------------------" INVENT_FILES=$(find "$INVENTORY_DIR" -type f \( -iname "*inventory*" -o -iname "*inventar*" -o -iname "*.log" \) | head -10) if [ -z "$INVENT_FILES" ]; then echo "Keine Inventar-/Log-Dateien gefunden." else for f in $INVENT_FILES; do echo echo "--- Datei: ${f#$INVENTORY_DIR/} ---" echo "(erste 40 Zeilen)" echo sed -n '1,40p' "$f" echo done fi echo echo "5) Zusammenfassung" echo "------------------" echo "Diese Geburtsurkunde beschreibt den Zustand des HX-KI Tresors" echo "auf Falkenstein zum angegebenen Zeitpunkt (Größe, Struktur," echo "wichtigste Dateien und Inventarauszüge)." echo } > "$OUT" echo "$OUT"