initial COM1 gateway system blueprint
This commit is contained in:
152
bin/hxki_falkenstein_birth_certificate.sh
Executable file
152
bin/hxki_falkenstein_birth_certificate.sh
Executable file
@@ -0,0 +1,152 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user