Bash-Skript zum Überprüfen, ob eine öffentliche HTTPS-Site aktiv ist

Bash-Skript zum Überprüfen, ob eine öffentliche HTTPS-Site aktiv ist

Ich versuche, einen weiteren Codeblock für ein Bash-Skript einzurichten, um zu prüfen, ob eine öffentliche Website über HTTPS aktiv ist oder nicht. Können wir das mit CURL machen? Irgendwelche Vorschläge, was außer CURL verwendet werden kann? Danke

Antwort1

Hier ist eine Möglichkeit, dies mit wget statt curl zu tun. Beachten Sie, dass wget bei MacOS nicht standardmäßig enthalten ist.

Eine erfolgreiche Web-Anfrage gibt den Code 200 zurück, ein Fehler 300, 400, 404 usw. (sieheREST-API-Codes)

Diese Zeile gibt ein zurück, 1wenn die Web-Anfrage erfolgreich war, andernfalls wird sie zurückgegeben0

wget -q  -O /tmp/foo google.com | grep '200' /tmp/foo | wc -l
1

Antwort2

Einer von vielen:

if curl -s --head  --request GET https://example.com | grep "200 OK" > /dev/null; then 
   echo "mysite.com is UP"
else
   echo "mysite.com is DOWN"
fi

Antwort3

Nagios'check_http-Pluginkann dies und noch viel mehr, einschließlich der Überprüfung auf bestimmten Text in der Antwort. Sie können es unabhängig von Nagios selbst von einem Shell-Skript aus ausführen:

$ check_http --ssl -H www.google.com -r 'Feeling Lucky'
HTTP OK: HTTP/1.1 200 OK - 11900 bytes in 0.086 second response time |time=0.085943s;;;0.000000 size=11900B;;;0

$ echo $?
0

Antwort4

eine ähnliche Frage wurde hier beantwortet:

https://stackoverflow.com/questions/12747929/linux-script-with-curl-to-check-webservice-is-up

Das Zitat stammt von Burhan Khalid

curl -sL -w "%{http_code}\n" "http://www.google.com/" -o /dev/null

-s = Stille cURL-Ausgabe

-L = Weiterleitungen folgen

-w = Benutzerdefiniertes Ausgabeformat

-o = Leitet die HTML-Ausgabe nach /dev/null um

Beispiel:

[~]$ curl -sL -w "%{http_code}\n" "http://www.google.com/" -o /dev/null

Ich würde wahrscheinlich das \n entfernen, wenn die Ausgabe erfasst werden sollte.

Sie müssen also nur -k in den Optionen hinzufügen, wenn Sie nicht nach einem gültigen Zertifikat suchen und offensichtlich https statt http verwenden möchten.

curl -sL -w "%{http_code}\n" "https://www.google.com/" -o /dev/null

meldet den Statuscode 200 mit einem Rückgabecode von 0.

Für alles andere müssen Sie Ihre Antwort im Skript definieren.

verwandte Informationen