Files
weval-l99/wevia-blade-monitor.sh
2026-04-13 12:43:21 +02:00

17 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Blade CPU/RAM monitor — auto-push cleanup if critical
LOG="/var/log/wevia-blade.log"
HB=$(cat /var/www/html/api/blade-heartbeat.json 2>/dev/null)
[ -z "$HB" ] && exit 0
CPU=$(echo "$HB" | python3 -c "import json,sys;print(json.load(sys.stdin).get('cpu',0))" 2>/dev/null)
RAM=$(echo "$HB" | python3 -c "import json,sys;print(json.load(sys.stdin).get('ram',0))" 2>/dev/null)
TS=$(echo "$HB" | python3 -c "import json,sys;print(json.load(sys.stdin).get('ts','?'))" 2>/dev/null)
echo "$(date +%H:%M) Blade CPU:${CPU}% RAM:${RAM}% TS:$TS" >> $LOG
# Auto-cleanup if critical
if [ "${CPU:-0}" -gt 90 ] || [ "${RAM:-0}" -gt 90 ]; then
echo "$(date +%H:%M) CRITICAL — pushing cleanup task" >> $LOG
cat > /var/www/html/api/blade-tasks/task_auto_cleanup.json << 'EOF'
{"id":"auto_cleanup","type":"powershell","cmd":"Get-Process | Where-Object {$_.WorkingSet64 -gt 500MB} | Sort-Object WorkingSet64 -Descending | Select-Object -First 3 | Stop-Process -Force -ErrorAction SilentlyContinue; [System.GC]::Collect(); Write-Output 'Cleanup done'","priority":1}
EOF
fi