45 lines
1.3 KiB
Bash
Executable File
45 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Setup health check script and cron job
|
|
|
|
set -e
|
|
|
|
echo "Setting up health check system..."
|
|
|
|
# Create health check script
|
|
cat > /usr/local/bin/explorer-health-check.sh << 'EOF'
|
|
#!/bin/bash
|
|
API_URL="http://localhost:8080/health"
|
|
LOG_FILE="/var/log/explorer-health-check.log"
|
|
|
|
# Check API health
|
|
STATUS=$(curl -s -o /dev/null -w "%{http_code}" $API_URL 2>/dev/null || echo "000")
|
|
|
|
if [ "$STATUS" != "200" ]; then
|
|
echo "$(date): Health check failed - Status: $STATUS" >> $LOG_FILE
|
|
|
|
# Restart API service
|
|
systemctl restart explorer-api
|
|
|
|
# Wait a bit and check again
|
|
sleep 10
|
|
STATUS2=$(curl -s -o /dev/null -w "%{http_code}" $API_URL 2>/dev/null || echo "000")
|
|
|
|
if [ "$STATUS2" != "200" ]; then
|
|
echo "$(date): API still unhealthy after restart - Status: $STATUS2" >> $LOG_FILE
|
|
# Send alert (configure email/Slack/etc here)
|
|
else
|
|
echo "$(date): API recovered after restart" >> $LOG_FILE
|
|
fi
|
|
fi
|
|
EOF
|
|
|
|
chmod +x /usr/local/bin/explorer-health-check.sh
|
|
|
|
# Add to crontab (every 5 minutes)
|
|
(crontab -l 2>/dev/null | grep -v explorer-health-check.sh; echo "*/5 * * * * /usr/local/bin/explorer-health-check.sh") | crontab -
|
|
|
|
echo "Health check system configured!"
|
|
echo "Health checks will run every 5 minutes"
|
|
echo "Log file: /var/log/explorer-health-check.log"
|
|
|