57 lines
1.6 KiB
Bash
Executable File
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
|