104 lines
2.0 KiB
Bash
104 lines
2.0 KiB
Bash
#!/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
|