Files
openclaw/tools/jarvis-health-check-old.sh
Clawd Bot ca9b510922 chore: align with upstream openclaw/openclaw and overlay local additions
- 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>
2026-03-03 07:40:46 +01:00

115 lines
3.6 KiB
Bash

#!/usr/bin/env bash
# Jarvis System Health Monitor
# Checks all infrastructure and reports issues proactively
set -euo pipefail
# Color codes
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
ISSUES=()
WARNINGS=()
OK_COUNT=0
check() {
local name="$1"
local cmd="$2"
if eval "$cmd" &>/dev/null; then
echo -e "${GREEN}${NC} $name"
((OK_COUNT++))
else
echo -e "${RED}${NC} $name"
ISSUES+=("$name")
fi
}
check_warn() {
local name="$1"
local cmd="$2"
if eval "$cmd" &>/dev/null; then
echo -e "${GREEN}${NC} $name"
((OK_COUNT++))
else
echo -e "${YELLOW}${NC} $name"
WARNINGS+=("$name")
fi
}
echo "=== JARVIS SYSTEM HEALTH CHECK ==="
echo ""
# Core Services
echo "📡 Core Infrastructure:"
check "Gateway (192.168.1.220:18789)" "timeout 5 curl -sfk https://192.168.1.220:18789/"
check "Kanban API (192.168.1.220:5003)" "timeout 5 curl -sf http://192.168.1.220:5003/api/tasks?limit=1"
check_warn "Voice Surface (192.168.1.220:3030)" "timeout 5 curl -sf http://192.168.1.220:3030/"
check_warn "Kamoer Pump (192.168.1.220:5000)" "timeout 5 curl -sf http://192.168.1.220:5000/"
echo ""
# Smart Home
echo "🏠 Smart Home:"
check "Home Assistant (192.168.1.24:8123)" "timeout 5 curl -sf http://192.168.1.24:8123/"
check_warn "Chromecast (192.168.1.25)" "ping -c 1 -W 2 192.168.1.25"
check_warn "Roborock (192.168.1.247)" "ping -c 1 -W 2 192.168.1.247"
check_warn "Shelly Gas (192.168.1.202)" "ping -c 1 -W 2 192.168.1.202"
echo ""
# Network Infrastructure
echo "🌐 Network:"
check_warn "Synology NAS (192.168.1.133)" "ping -c 1 -W 2 192.168.1.133"
check_warn "Office Server (192.168.1.112)" "ping -c 1 -W 2 192.168.1.112"
check_warn "UniFi Controller (192.168.1.78)" "timeout 5 curl -sfk https://192.168.1.78:8443/"
check_warn "HP Printer (192.168.1.6)" "ping -c 1 -W 2 192.168.1.6"
echo ""
# Databases
echo "💾 Databases:"
check_warn "MariaDB (direct access)" "timeout 3 mariadb -h 127.0.0.1 -u root -e 'SELECT 1' 2>/dev/null || timeout 3 mariadb -h 192.168.1.220 -e 'SELECT 1' 2>/dev/null"
echo ""
# Raspberry Pi (192.168.1.24)
echo "🥧 Raspberry Pi:"
check "SSH access (192.168.1.24)" "timeout 5 ssh -o ConnectTimeout=3 192.168.1.24 'echo ok' 2>/dev/null"
check_warn "Disk usage < 90%" "timeout 5 ssh -o ConnectTimeout=3 192.168.1.24 'df -h / | tail -1 | awk \"{print \$5}\" | sed \"s/%//\"' | awk '{if (\$1 < 90) exit 0; else exit 1}' 2>/dev/null"
check_warn "Memory available > 200MB" "timeout 5 ssh -o ConnectTimeout=3 192.168.1.24 'free -m | grep Mem | awk \"{print \$7}\"' | awk '{if (\$1 > 200) exit 0; else exit 1}' 2>/dev/null"
echo ""
# Messaging Channels
echo "💬 Messaging:"
check "Discord channel" "timeout 10 openclaw channels status --probe 2>&1 | grep -q discord"
echo ""
# Summary
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
if [ ${#ISSUES[@]} -eq 0 ] && [ ${#WARNINGS[@]} -eq 0 ]; then
echo -e "${GREEN}✅ All systems operational${NC} ($OK_COUNT checks passed)"
exit 0
else
echo "📊 Summary: $OK_COUNT OK, ${#WARNINGS[@]} warnings, ${#ISSUES[@]} critical"
echo ""
if [ ${#ISSUES[@]} -gt 0 ]; then
echo -e "${RED}❌ CRITICAL ISSUES:${NC}"
for issue in "${ISSUES[@]}"; do
echo " - $issue"
done
echo ""
fi
if [ ${#WARNINGS[@]} -gt 0 ]; then
echo -e "${YELLOW}⚠️ WARNINGS:${NC}"
for warn in "${WARNINGS[@]}"; do
echo " - $warn"
done
echo ""
fi
exit 1
fi