42 lines
1.2 KiB
Bash
42 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# Health check and auto-restart script for QBPOS Help site
|
|
|
|
DOMAIN="quickbookposhelp.access.ly"
|
|
LOG_FILE="/var/log/qbpos-health-check.log"
|
|
|
|
# Function to log messages
|
|
log_message() {
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE"
|
|
}
|
|
|
|
# Check if nginx is running
|
|
if ! systemctl is-active --quiet nginx; then
|
|
log_message "ERROR: Nginx is not running. Attempting to start..."
|
|
systemctl start nginx
|
|
if [ $? -eq 0 ]; then
|
|
log_message "SUCCESS: Nginx restarted successfully"
|
|
else
|
|
log_message "CRITICAL: Failed to restart Nginx"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Check if the site responds
|
|
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -m 10 "https://$DOMAIN" 2>/dev/null)
|
|
|
|
if [ "$HTTP_CODE" != "200" ]; then
|
|
log_message "WARNING: Site returned HTTP $HTTP_CODE. Reloading nginx..."
|
|
systemctl reload nginx
|
|
sleep 2
|
|
|
|
# Check again
|
|
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -m 10 "https://$DOMAIN" 2>/dev/null)
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
log_message "SUCCESS: Site recovered after reload"
|
|
else
|
|
log_message "ERROR: Site still not responding properly (HTTP $HTTP_CODE)"
|
|
fi
|
|
else
|
|
log_message "OK: Site is healthy (HTTP $HTTP_CODE)"
|
|
fi
|