Files
server-reorg-playbook/scripts/server_diagnose.sh
2025-12-04 14:44:25 +01:00

104 lines
2.0 KiB
Bash
Raw 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.

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