#!/bin/sh
# sysinfo -- quick system overview
set -eu
printf "%-12s %s\n" "Hostname:" "$(hostname)"
printf "%-12s %s\n" "Kernel:" "$(uname -r)"
printf "%-12s %s\n" "Uptime:" "$(uptime -p 2>/dev/null || uptime | awk '{print $3,$4}')"
printf "%-12s %s cores\n" "CPU:" "$(nproc)"
printf "%-12s %s\n" "Memory:" "$(free -h | awk '/Mem:/ {print $3 "/" $2}')"
printf "%-12s %s\n" "Disk /:" "$(df -h / | awk 'NR==2 {print $3 "/" $2 " (" $5 ")"}')"
printf "%-12s %s\n" "Load:" "$(cut -d' ' -f1-3 /proc/loadavg 2>/dev/null || sysctl -n vm.loadavg 2>/dev/null || echo 'N/A')"
# Network
if command -v ip >/dev/null 2>&1; then
printf "%-12s %s\n" "IP:" "$(ip route get 1.1.1.1 2>/dev/null | awk '{print $7; exit}')"
fi
# Tailscale
if command -v tailscale >/dev/null 2>&1; then
tsip=$(tailscale ip -4 2>/dev/null || echo "not connected")
printf "%-12s %s\n" "Tailscale:" "$tsip"
fi