HTTP-Server überwachen

HTTP-Server überwachen

Ich möchte den Zustand des Webservers überprüfen. Wenn innerhalb von 2 Minuten eine HTTP-Antwort eingeht, sollte der Server neu gestartet werden. Ich verwende den folgenden Befehl, um den Status zu überprüfen -

curl -s -w "%{time_total}\n" -o /dev/null http://localhost:8080/demo1/employee/hello

Führt jedoch die Endlosschleife aus und sucht nach einer Antwort.

Antwort1

Das folgende Skript prüft die von der URL benötigte Zeit und wenn diese mehr als 2 Minuten beträgt, wird die if-Bedingung ausgeführt. Dort müssen Sie Ihren Neustartbefehl einfügen. Es schläft für jede Iteration 60 Sekunden.

#!/bin/bash

LOG_FILE=/tmp/log.txt

while true
do
    echo "$(date) - Checking the URL is up or not" >> ${LOG_FILE}
    TIME_TAKEN=$(curl -s -w "%{time_total}\n" -o /dev/null http://localhost:8080/demo1/employee/hello)
    if [ "${TIME_TAKEN}" -gt "120" ]
    then
        echo "$(date) - Restart required. Time taken is ${TIME_TAKEN}" >> ${LOG_FILE}
        # your restart command goes here
        echo "$(date) - Successfully restarted" >> ${LOG_FILE}
    fi
    echo "$(date) - Sleep for 60 seconds" >> ${LOG_FILE}
    sleep 60
done

verwandte Informationen