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