Files
hx-ki.com2/bin/hxki_birth_from_tresor.sh
2026-03-06 15:22:40 +00:00

67 lines
1.8 KiB
Bash
Executable File

#!/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"