Initial commit: Brocade ICX 6610-48P monitoring scripts

- brocade-status.sh: Full status dump with uptime, temps, ports, logs
- Color-coded health summary
- Detects RTC battery issues, high temps, recent reboots
This commit is contained in:
2026-04-03 15:41:11 +00:00
commit 3db6162b10
2 changed files with 179 additions and 0 deletions

50
brocade-monitor.sh Normal file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
# Monitor Brocade ICX 6610-48P switch uptime
# Detects random reboots and logs them
SWITCH_IP="192.168.1.2"
LOG_FILE="$HOME/.local/state/openclaw/brocade-monitor.log"
STATE_FILE="$HOME/.local/state/openclaw/brocade-uptime.state"
mkdir -p "$(dirname "$LOG_FILE")"
# Get current uptime via SSH (requires sshpass)
# Brocade CLI: show version | include "uptime"
get_uptime() {
sshpass -p 'palm7' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
-o ConnectTimeout=10 \
root@${SWITCH_IP} 'show version | include "uptime"' 2>/dev/null
}
# Alternative: check uptime via SNMP if available
# snmpwalk -v2c -c public 192.168.1.2 sysUpTime
# Check if switch is reachable
check_switch() {
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
# Ping check (need raw socket)
if nc -zv -w 5 ${SWITCH_IP} 22 2>&1 | grep -q "open"; then
echo "[$timestamp] SSH port open" >> "$LOG_FILE"
# Try to get uptime
local uptime_output=$(get_uptime)
if [ -n "$uptime_output" ]; then
echo "[$timestamp] Uptime: $uptime_output" >> "$LOG_FILE"
# Check for reboot (uptime decreased)
if [ -f "$STATE_FILE" ]; then
local prev_uptime=$(cat "$STATE_FILE")
# Compare uptime values - if current < previous, reboot occurred
# This is a simplified check; would need to parse actual uptime
fi
# Save current uptime
echo "$uptime_output" > "$STATE_FILE"
fi
else
echo "[$timestamp] SWITCH DOWN - Cannot connect to SSH port" >> "$LOG_FILE"
fi
}
check_switch