Files
wevads-platform/scripts/master_monitor.sh
2026-02-26 04:53:11 +01:00

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