54 lines
1.8 KiB
Bash
Executable File
54 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# MASTER MONITOR - Run every 5 minutes
|
|
# Error detection, zombie killing, cache clearing, regression detection
|
|
|
|
LOG="/opt/wevads/logs/master_monitor.log"
|
|
API="http://127.0.0.1:5821/api/master-monitor-api.php"
|
|
|
|
echo "[$(date)] === MASTER MONITOR START ===" >> $LOG
|
|
|
|
# 1. Check for errors
|
|
ERRORS=$(curl -s "$API?action=check_errors")
|
|
ERROR_COUNT=$(echo $ERRORS | jq -r '.total_errors // 0')
|
|
echo "[$(date)] Errors detected: $ERROR_COUNT" >> $LOG
|
|
|
|
# 2. Auto-repair if needed
|
|
if [ "$ERROR_COUNT" -gt 10 ]; then
|
|
echo "[$(date)] Auto-repairing..." >> $LOG
|
|
curl -s -X POST "$API" -d "action=auto_repair" >> $LOG
|
|
fi
|
|
|
|
# 3. Kill zombies
|
|
ZOMBIES=$(curl -s -X POST "$API" -d "action=kill_zombies")
|
|
ZOMBIE_COUNT=$(echo $ZOMBIES | jq -r '.count // 0')
|
|
echo "[$(date)] Zombies killed: $ZOMBIE_COUNT" >> $LOG
|
|
|
|
# 4. Check tracking
|
|
TRACKING=$(curl -s "$API?action=check_tracking")
|
|
TRACKING_OK=$(echo $TRACKING | jq -r '.all_healthy // false')
|
|
if [ "$TRACKING_OK" != "true" ]; then
|
|
echo "[$(date)] Tracking issue detected, repairing..." >> $LOG
|
|
curl -s -X POST "$API" -d "action=repair_tracking&server=all" >> $LOG
|
|
fi
|
|
|
|
# 5. Detect regressions
|
|
REGRESSIONS=$(curl -s "$API?action=detect_regressions")
|
|
REG_COUNT=$(echo $REGRESSIONS | jq -r '.count // 0')
|
|
echo "[$(date)] Regressions: $REG_COUNT" >> $LOG
|
|
|
|
# 6. Clear caches if memory > 90%
|
|
MEM_USED=$(free | grep Mem | awk '{print int($3/$2 * 100)}')
|
|
if [ "$MEM_USED" -gt 90 ]; then
|
|
echo "[$(date)] Memory at $MEM_USED%, clearing caches..." >> $LOG
|
|
curl -s -X POST "$API" -d "action=clear_all_caches" >> $LOG
|
|
fi
|
|
|
|
# 7. Test AI providers (every 6th run = 30min)
|
|
MINUTE=$(date +%M)
|
|
if [ "$((MINUTE % 30))" -eq 0 ]; then
|
|
echo "[$(date)] Testing AI providers..." >> $LOG
|
|
curl -s "$API?action=test_all_providers" >> $LOG
|
|
fi
|
|
|
|
echo "[$(date)] === MASTER MONITOR END ===" >> $LOG
|