17 lines
1.1 KiB
Bash
Executable File
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
|