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
-I
ist äquivalent zu --head
.
https
, können Sie auch hinzufügen -k
oder--insecure
Versuchen:
wget -S --spider www.example.com
Sie können auch übergeben -O /dev/null
, um zu verhindern, dass wget
HTTP-Antworten in eine Datei geschrieben werden.
-S
wird zeigen , Header, aber es führt ein GET
, nicht ein HEAD
. Mit anderen Worten, es wird die gesamte URL abgerufen.
wget -S --spider http://localhost
Das 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 --spider
Sie eine HEAD
Anforderung senden (im Gegensatz zu GET
oder 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 HEAD
Vorgang stellt sicher, dass weder das Netzwerk noch der Ziel-Webserver belastet werden.
Bonus-Informationen: Wenn Wget beim HEAD
Ausführen des Befehls einen HTTP-Fehler 500 vom Server erhält, wird der Vorgang fortgesetzt , um einen GET
Vorgang 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 GET
Anforderung für den Server ausgeführt wird. Wenn nichts falsch ist, wird nur eine HEAD
Anfrage ausgeführt. Sie können diese Funktion mit der --tries
Option 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 wget
vielen perl
Installationen mit lwp
Modul ist jedoch ein HEAD
Befehl installiert.