Files
wevia-brain/weval-site-guardian.sh
2026-04-12 23:01:36 +02:00

57 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# WEVAL SITE GUARDIAN v2 - ALERTE ONLY, ZERO MODIFICATION
# Runs every 5min via cron - NEVER modifies any file
SITE_DIR="/var/www/html"
LOG="/var/log/weval-site-guardian.log"
declare -A CRITICAL_FILES
CRITICAL_FILES=(
["index.html"]=8000
["weval-audit-reco.js"]=35000
["weval-enrich.js"]=100000
["weval-translate.js"]=15000
["weval-animations.js"]=8000
["assets/index-BNsKw9qU.js"]=700000
)
ERRORS=0
NOW=$(date "+%Y-%m-%d %H:%M:%S")
for FILE in "${!CRITICAL_FILES[@]}"; do
FULL_PATH="$SITE_DIR/$FILE"
MIN_SIZE=${CRITICAL_FILES[$FILE]}
if [ ! -f "$FULL_PATH" ]; then
echo "[$NOW] ALERT: $FILE MISSING!" >> $LOG
ERRORS=$((ERRORS+1))
continue
fi
ACTUAL_SIZE=$(stat -c%s "$FULL_PATH" 2>/dev/null)
if [ "$ACTUAL_SIZE" -lt "$MIN_SIZE" ]; then
echo "[$NOW] ALERT: $FILE shrunk! Expected >=${MIN_SIZE}B got ${ACTUAL_SIZE}B - POSSIBLE OVERWRITE - NO ACTION TAKEN" >> $LOG
ERRORS=$((ERRORS+1))
fi
done
if ! pgrep -x nginx > /dev/null; then
echo "[$NOW] ALERT: nginx is DOWN - NO ACTION TAKEN" >> $LOG
ERRORS=$((ERRORS+1))
fi
HTTP_CODE=$(curl -sk -o /dev/null -w "%{http_code}" https://127.0.0.1/ -H "Host: weval-consulting.com" --max-time 10 2>/dev/null)
if [ "$HTTP_CODE" != "200" ]; then
echo "[$NOW] ALERT: Site HTTP $HTTP_CODE instead of 200 - NO ACTION TAKEN" >> $LOG
ERRORS=$((ERRORS+1))
fi
if [ $ERRORS -gt 0 ]; then
echo "[$NOW] === $ERRORS ISSUES DETECTED - MANUAL INTERVENTION REQUIRED ===" >> $LOG
fi
# Log rotation only
if [ $(stat -c%s "$LOG" 2>/dev/null || echo 0) -gt 1048576 ]; then
tail -500 $LOG > ${LOG}.tmp && mv ${LOG}.tmp $LOG
fi