added srv diag srcipt

This commit is contained in:
2025-12-04 14:44:25 +01:00
parent 9087c6ccc7
commit 19f68329e6

103
scripts/server_diagnose.sh Normal file
View File

@ -0,0 +1,103 @@
#!/bin/bash
###############################################################################
# SERVER DIAGNOSE SCRIPT
# Version: v1.0
# Author: Stephan & ChatGPT
# Purpose: Read-only Systemdiagnose für Linux Server
# Output: server_diagnose.txt im aktuellen Verzeichnis
###############################################################################
OUTFILE="server_diagnose.txt"
echo "Starte Server-Diagnose..."
echo "Output wird gespeichert in: $OUTFILE"
echo "----------------------------------------"
# Self-Test
if ! command -v uname >/dev/null 2>&1; then
echo "Fehler: uname nicht gefunden – grundlegende Tools fehlen." >&2
exit 1
fi
{
echo "SERVER DIAGNOSE REPORT"
echo "Erstellt am: $(date)"
echo "==========================================="
echo ""
echo "### SYSTEMINFO ###"
uname -a
cat /etc/os-release 2>/dev/null
echo ""
echo "Uptime:"
uptime
echo ""
echo "CPU:"
lscpu 2>/dev/null
echo ""
echo "RAM:"
free -h
echo ""
echo "Festplatten:"
df -h
echo ""
echo "Blockgeräte:"
lsblk
echo ""
echo "### NETZWERK ###"
ip a
echo ""
echo "Routen:"
ip r
echo ""
echo "Offene Ports:"
ss -tulpen
echo ""
echo "### DIENSTE ###"
echo "Aktive Services:"
systemctl --type=service --state=running
echo ""
echo "Fehlerhafte Services:"
systemctl --failed
echo ""
echo "### BENUTZER ###"
echo "Benutzerliste:"
cut -d: -f1 /etc/passwd
echo ""
echo "Sudo-Gruppe:"
getent group sudo || getent group wheel
echo ""
echo "### SSH KONFIGURATION ###"
grep -E "^(Port|PermitRootLogin|PasswordAuthentication|PubkeyAuthentication)" /etc/ssh/sshd_config
echo ""
echo "### DOCKER ###"
docker --version 2>/dev/null
docker ps -a 2>/dev/null
docker network ls 2>/dev/null
echo ""
echo "### ORDNERSTRUKTUR ###"
echo "Struktur /srv:"
ls -R /srv 2>/dev/null
echo ""
echo "Struktur /data:"
ls -R /data 2>/dev/null
echo ""
echo "Struktur /docker:"
ls -R /docker 2>/dev/null
echo ""
echo "### LOGS (CRITICAL) ###"
journalctl -p 3 -xb | head -n 50
echo ""
} > "$OUTFILE"
echo "Diagnose abgeschlossen."
echo "Datei erstellt: $OUTFILE"
exit 0