- Reset master to upstream/main (16,697 commits) - Overlay 2,271 local-only files (skills, tools, workspace, configs, apps) - Restore IDENTITY.md and USER.md templates - Build verified, gateway running, Discord working Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
84 lines
2.2 KiB
Bash
84 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
# Jarvis System Health Monitor V2 - Simplified & Robust
|
|
|
|
set -euo pipefail
|
|
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
CRITICAL=0
|
|
WARNINGS=0
|
|
OK=0
|
|
|
|
check_critical() {
|
|
local name="$1"
|
|
local cmd="$2"
|
|
|
|
if eval "timeout 5 $cmd" &>/dev/null; then
|
|
echo -e "${GREEN}✓${NC} $name"
|
|
((OK++))
|
|
else
|
|
echo -e "${RED}✗${NC} $name"
|
|
((CRITICAL++))
|
|
fi
|
|
}
|
|
|
|
check_warn() {
|
|
local name="$1"
|
|
local cmd="$2"
|
|
|
|
if eval "timeout 5 $cmd" &>/dev/null; then
|
|
echo -e "${GREEN}✓${NC} $name"
|
|
((OK++))
|
|
else
|
|
echo -e "${YELLOW}⚠${NC} $name"
|
|
((WARNINGS++))
|
|
fi
|
|
}
|
|
|
|
echo "=== JARVIS SYSTEM HEALTH CHECK ==="
|
|
echo ""
|
|
|
|
echo "📡 Core Services:"
|
|
check_critical "Gateway" "curl -sfk https://192.168.1.220:18789/"
|
|
check_critical "Kanban API" "curl -sf http://192.168.1.220:5003/api/tasks?limit=1"
|
|
check_critical "Discord" "openclaw channels status --probe | grep -q discord"
|
|
echo ""
|
|
|
|
echo "🔧 Optional Services:"
|
|
check_warn "Voice Surface" "curl -sf http://192.168.1.220:3030/"
|
|
check_warn "Kamoer Pump" "curl -sf http://192.168.1.220:5000/"
|
|
echo ""
|
|
|
|
echo "🏠 Smart Home:"
|
|
check_critical "Home Assistant" "curl -sf http://192.168.1.24:8123/"
|
|
check_warn "Chromecast" "ping -c 1 -W 2 192.168.1.25"
|
|
check_warn "Roborock" "ping -c 1 -W 2 192.168.1.247"
|
|
echo ""
|
|
|
|
echo "🌐 Network:"
|
|
check_warn "NAS" "ping -c 1 -W 2 192.168.1.133"
|
|
check_warn "UniFi" "curl -sfk https://192.168.1.78:8443/"
|
|
echo ""
|
|
|
|
echo "🥧 Raspberry Pi:"
|
|
check_critical "SSH" "ssh -o ConnectTimeout=3 192.168.1.24 'echo ok'"
|
|
check_warn "Disk < 90%" "ssh -o ConnectTimeout=3 192.168.1.24 'df / | tail -1 | awk \"{print \\\$5}\" | sed s/%// | awk \"{if (\\\$1<90) exit 0; else exit 1}\"'"
|
|
echo ""
|
|
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
if [ $CRITICAL -eq 0 ] && [ $WARNINGS -eq 0 ]; then
|
|
echo -e "${GREEN}✅ All systems operational${NC} ($OK checks)"
|
|
exit 0
|
|
elif [ $CRITICAL -eq 0 ]; then
|
|
echo -e "${YELLOW}⚠️ $WARNINGS warnings${NC}, $OK OK"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}❌ $CRITICAL critical${NC}, $WARNINGS warnings, $OK OK"
|
|
exit 1
|
|
fi
|