71 lines
1.3 KiB
Bash
Executable File
71 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Collect a concise host and network snapshot for incident triage.
|
|
|
|
now="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
host="$(hostname 2>/dev/null || echo unknown)"
|
|
|
|
echo "=== sysdiag snapshot ==="
|
|
echo "timestamp_utc: $now"
|
|
echo "host: $host"
|
|
echo
|
|
|
|
echo "--- os ---"
|
|
uname -a || true
|
|
if [ -f /etc/os-release ]; then
|
|
sed -n '1,12p' /etc/os-release || true
|
|
fi
|
|
echo
|
|
|
|
echo "--- uptime/load ---"
|
|
uptime || true
|
|
echo
|
|
|
|
echo "--- cpu/memory ---"
|
|
free -h || true
|
|
echo
|
|
|
|
echo "--- disk ---"
|
|
df -hT || true
|
|
df -ih || true
|
|
echo
|
|
|
|
echo "--- interfaces ---"
|
|
ip -br addr 2>/dev/null || true
|
|
ip -s link 2>/dev/null || true
|
|
echo
|
|
|
|
echo "--- routing ---"
|
|
ip route show 2>/dev/null || true
|
|
ip rule show 2>/dev/null || true
|
|
echo
|
|
|
|
echo "--- listening sockets ---"
|
|
ss -tulpn 2>/dev/null || true
|
|
echo
|
|
|
|
echo "--- dns ---"
|
|
if command -v resolvectl >/dev/null 2>&1; then
|
|
resolvectl status 2>/dev/null || true
|
|
fi
|
|
cat /etc/resolv.conf 2>/dev/null || true
|
|
echo
|
|
|
|
echo "--- firewall ---"
|
|
if command -v nft >/dev/null 2>&1; then
|
|
nft list ruleset 2>/dev/null || true
|
|
elif command -v iptables >/dev/null 2>&1; then
|
|
iptables -S 2>/dev/null || true
|
|
else
|
|
echo "No nftables/iptables binary found"
|
|
fi
|
|
echo
|
|
|
|
echo "--- services ---"
|
|
systemctl --failed --no-pager 2>/dev/null || true
|
|
echo
|
|
|
|
echo "--- recent critical logs ---"
|
|
journalctl -p 3 -xb --no-pager -n 120 2>/dev/null || true
|