Files
HX_KI_com-Com1/bin/hxki_falkenstein_birth_certificate.sh
2026-03-06 14:37:04 +00:00

153 lines
4.6 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# ==========================================
# HX-KI FALKENSTEIN - BIRTH CERTIFICATE V1.0
# ==========================================
set -euo pipefail
# Basispfade
REPORT_DIR="/opt/hx-ki/reports"
mkdir -p "$REPORT_DIR"
TIMESTAMP="$(date +"%Y-%m-%d_%H%M%S")"
REPORT_FILE="${REPORT_DIR}/hxki_falkenstein_birth_certificate_${TIMESTAMP}.txt"
# Header
{
echo "==============================================="
echo " HX-KI SYSTEM GEBURTSURKUNDE FALKENSTEIN"
echo "==============================================="
echo "Erzeugt am: $(date)"
echo
} > "$REPORT_FILE"
# 1) Server-Basisdaten
{
echo "1) SERVER-BASISDATEN"
echo "--------------------"
echo "Hostname: $(hostname)"
echo "OS: $(grep PRETTY_NAME /etc/os-release | cut -d= -f2- | tr -d '\"')"
echo "Kernel: $(uname -r)"
echo "CPU: $(lscpu | grep 'Model name' | sed 's/Model name:\s*//')"
echo "CPU Cores: $(nproc)"
echo "RAM (gesamt): $(grep MemTotal /proc/meminfo | awk '{printf \"%.1f GB\", $2/1024/1024}')"
echo "Swap: $(grep SwapTotal /proc/meminfo | awk '{printf \"%.1f GB\", $2/1024/1024}')"
echo "Root-Filesystem: $(df -h / | tail -1 | awk '{print $2 \" gesamt, \" $3 \" belegt, \" $4 \" frei (\" $5 \" genutzt)\"}')"
echo
} >> "$REPORT_FILE"
# 2) Docker / Container / Services
{
echo "2) DOCKER & CONTAINERZUSTAND"
echo "----------------------------"
if command -v docker >/dev/null 2>&1; then
echo "Docker Version: $(docker --version)"
echo
echo "Laufende Container:"
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}" || echo "Keine laufenden Container gefunden."
else
echo "Docker ist nicht installiert oder nicht im PATH."
fi
echo
} >> "$REPORT_FILE"
# 3) Wichtige HX-KI-Komponenten erkennen
{
echo "3) HX-KI KOMPONENTEN FALKENSTEIN"
echo "----------------------------------"
echo "Hinweis: Erkennung über Container-Namen (hxki-*)"
if command -v docker >/dev/null 2>&1; then
# Liste typischer Dienste
SERVICES=(
"hxki-gitea"
"hxki-grafana"
"hxki-prometheus"
"hxki-n8n"
"hxki-mariadb"
"hxki-mautic"
"hxki-syncthing"
"hxki-nats"
"hxki-web"
"hxki-postgres"
"hxki-mailcow"
)
for s in "${SERVICES[@]}"; do
if docker ps --format '{{.Names}}' | grep -q "^${s}$"; then
status="$(docker ps --filter "name=${s}" --format '{{.Status}}')"
image="$(docker ps --filter "name=${s}" --format '{{.Image}}')"
echo "- ${s}: LAUFEND (${status}, Image: ${image})"
elif docker ps -a --format '{{.Names}}' | grep -q "^${s}$"; then
status="$(docker ps -a --filter "name=${s}" --format '{{.Status}}')"
image="$(docker ps -a --filter "name=${s}" --format '{{.Image}}')"
echo "- ${s}: INSTALLIERT, ABER NICHT LAUFEND (${status}, Image: ${image})"
else
echo "- ${s}: NICHT GEFUNDEN"
fi
done
else
echo "Docker nicht verfügbar Komponenten können nicht geprüft werden."
fi
echo
} >> "$REPORT_FILE"
# 4) Netzwerke & Ports
{
echo "4) NETZWERK & PORTS"
echo "-------------------"
if command -v docker >/dev/null 2>&1; then
echo "Docker-Netzwerke:"
docker network ls || echo "Keine Netzwerke gefunden."
echo
fi
echo "Aktiv lauschende Ports (netstat/ss):"
if command -v ss >/dev/null 2>&1; then
ss -tulpn | sed -n '1,50p'
elif command -v netstat >/dev/null 2>&1; then
netstat -tulpn | sed -n '1,50p'
else
echo "Weder ss noch netstat verfügbar."
fi
echo
} >> "$REPORT_FILE"
# 5) HX-KI Verzeichnisstruktur (falls vorhanden)
{
echo "5) HX-KI VERZEICHNISSTRUKTUR (KURZÜBERSICHT)"
echo "--------------------------------------------"
HX_DIR="/opt/hx-ki"
if [ -d "$HX_DIR" ]; then
echo "Basisverzeichnis: $HX_DIR"
echo
echo "Top-Level-Struktur:"
find "$HX_DIR" -maxdepth 2 -type d | sed "s|$HX_DIR|/opt/hx-ki|"
else
echo "$HX_DIR existiert nicht oder ist nicht erreichbar."
fi
echo
} >> "$REPORT_FILE"
# 6) Zusammenfassung
{
echo "6) KURZZUSAMMENFASSUNG FALKENSTEIN STATUS"
echo "-------------------------------------------"
echo "Dieser Bericht fasst den aktuellen Systemzustand des HX-KI Knotens"
echo "Falkenstein zusammen (Serverressourcen, Container, Netzwerke, HX-KI"
echo "Kernkomponenten und Basisstruktur)."
echo
echo "Berichtsdatei:"
echo " $REPORT_FILE"
echo
echo "Hinweis:"
echo "- Dies ist die 'Geburtsurkunde' des Systemzustands zum Zeitpunkt:"
echo " $(date)"
echo "- Der Bericht kann jederzeit erneut erzeugt werden."
echo
} >> "$REPORT_FILE"
echo "HX-KI Geburtsurkunde für Falkenstein erstellt:"
echo " $REPORT_FILE"