57 lines
1.7 KiB
Bash
Executable File
57 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
echo "║ AUTO-FIX — DETECT + CORRECT"
|
|
FIXED=0
|
|
|
|
# 1. Docker containers down
|
|
for S in langfuse mattermost n8n qdrant searxng twenty uptime-kuma vaultwarden plausible prometheus loki; do
|
|
if ! docker ps --format '{{.Names}}' | grep -q "^$S$"; then
|
|
docker start $S > /dev/null 2>&1
|
|
echo "║ FIXED: Started $S"
|
|
FIXED=$((FIXED+1))
|
|
fi
|
|
done
|
|
|
|
# 2. Systemd services
|
|
for S in deerflow deerflow-web nginx php8.5-fpm; do
|
|
if ! systemctl is-active $S > /dev/null 2>&1; then
|
|
systemctl start $S 2>/dev/null
|
|
echo "║ FIXED: Started $S"
|
|
FIXED=$((FIXED+1))
|
|
fi
|
|
done
|
|
|
|
# 3. MiroFish
|
|
MF=$(curl -sf http://127.0.0.1:5001/ --max-time 3 2>/dev/null)
|
|
if [ -z "$MF" ]; then
|
|
systemctl restart mirofish 2>/dev/null
|
|
sleep 3
|
|
echo "║ FIXED: MiroFish restarted"
|
|
FIXED=$((FIXED+1))
|
|
else
|
|
echo "║ OK: MiroFish :5001"
|
|
fi
|
|
|
|
# 4. Disk > 90%
|
|
DISK=$(df -h / | tail -1 | awk '{print $5}' | tr -d '%')
|
|
if [ "$DISK" -gt 90 ]; then
|
|
docker system prune -f > /dev/null 2>&1
|
|
journalctl --vacuum-size=100M > /dev/null 2>&1
|
|
find /tmp -mtime +3 -delete 2>/dev/null
|
|
echo "║ FIXED: Disk cleanup ($DISK%)"
|
|
FIXED=$((FIXED+1))
|
|
else
|
|
echo "║ OK: Disk $DISK%"
|
|
fi
|
|
|
|
# 5. PHP error logs
|
|
ERRS=$(find /var/log/nginx -name '*.log' -newer /tmp/.director-last-check -exec grep -c 'PHP Fatal' {} + 2>/dev/null | awk -F: '{s+=$2}END{print s+0}')
|
|
if [ "$ERRS" -gt 100 ]; then
|
|
find /var/log/nginx -name '*.log' -exec truncate -s 0 {} \;
|
|
touch /tmp/.director-last-check
|
|
echo "║ FIXED: Cleared $ERRS PHP errors"
|
|
FIXED=$((FIXED+1))
|
|
fi
|
|
|
|
echo "║ TOTAL FIXES: $FIXED"
|
|
echo "║ NonReg: $(bash /var/www/html/api/nonreg-check.sh)"
|