Antworten:
Es ist nicht wget, aber Sie können das ziemlich leicht tun, indem Sie Wellung verwenden.
curl -I http://www.superuser.com/
Erzeugt diese Ausgabe:
HTTP/1.1 301 Moved Permanently
Content-Length: 144
Content-Type: text/html; charset=UTF-8
Location: http://superuser.com/
Date: Sat, 09 Oct 2010 19:11:50 GMT
-Iist äquivalent zu --head.
https, können Sie auch hinzufügen -koder--insecure
Versuchen:
wget -S --spider www.example.com
Sie können auch übergeben -O /dev/null, um zu verhindern, dass wgetHTTP-Antworten in eine Datei geschrieben werden.
-Swird zeigen , Header, aber es führt ein GET, nicht ein HEAD. Mit anderen Worten, es wird die gesamte URL abgerufen.
wget -S --spider http://localhostDas im Apache-Server erstellte Protokoll lautet127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
Es ist keine Locke erforderlich .
Beim Hinzufügen von Wget müssen --spiderSie eine HEADAnforderung senden (im Gegensatz zu GEToder POST).
Dies ist eine großartige minimalistische Methode, um zu überprüfen, ob eine URL antwortet oder nicht. Sie können dies beispielsweise bei skriptbasierten Überprüfungen verwenden, und der HEADVorgang stellt sicher, dass weder das Netzwerk noch der Ziel-Webserver belastet werden.
Bonus-Informationen: Wenn Wget beim HEADAusführen des Befehls einen HTTP-Fehler 500 vom Server erhält, wird der Vorgang fortgesetzt , um einen GETVorgang für dieselbe URL auszuführen . Ich kenne die Gründe für diesen Entwurf nicht. Dies ist der Grund, warum möglicherweise sowohl eine HEAD als auch eine GETAnforderung für den Server ausgeführt wird. Wenn nichts falsch ist, wird nur eine HEADAnfrage ausgeführt. Sie können diese Funktion mit der --triesOption deaktivieren , Wget auf nur einen Versuch zu beschränken.
Alles in allem empfehle ich dies, um zu testen, ob eine URL antwortet:
# This works in Bash and derivatives
wget_output=$(wget --spider --tries 1 $URL 2>&1)
wget_exit_code=$?
if [ $wget_exit_code -ne 0 ]; then
# Something went wrong
echo "$URL is not responding"
echo "Output from wget: "
echo "$wget_output"
else
echo "Check succeeded: $URL is responding"
fi
wget -S Ruft die Datei ab:
Inhaltslänge: 2316, Länge: 2316 (2,3 KB) [text / plain], Speichern unter: `index.html '
wget --spider bekommt Überschriften:
Spinnenmodus aktiviert. Überprüfen Sie, ob die entfernte Datei existiert., Länge: nicht angegeben [text / plain] Die entfernte Datei existiert.
Bei wgetvielen perlInstallationen mit lwpModul ist jedoch ein HEADBefehl installiert.