Kann ich mit wget prüfen, aber nicht herunterladen?


Antworten:


115

--spiderGenau dafür gibt es den Kommandozeilenparameter . In diesem Modus lädt wget die Dateien nicht herunter und der Rückgabewert ist Null, wenn die Ressource gefunden wurde, und ungleich Null, wenn sie nicht gefunden wurde. Versuchen Sie dies (in Ihrer Lieblingsschale):

wget -q --spider address
echo $?

Oder wenn Sie die volle Ausgabe wünschen, lassen Sie das -qAus, also einfach wget --spider address. -nvzeigt einige Ausgaben an, aber nicht so viel wie die Standardeinstellung.


29
Beachten Sie, dass wget --spidereine HEAD-Anforderung gesendet wird, keine GET.
Hammar

3
@hammer, ich bin mir nicht sicher, welche Version Sie möglicherweise verwendet haben, aber mit 1.14 wget --spiderwird ein HEAD ausgeführt und, falls erfolgreich, mit einem GET auf dieselbe URL. Mit der rekursiven Option ist es daher nützlich, den Cache für eine serverseitige Website zu erstellen.
Danorton

26

Wenn Sie ruhig über $ überprüfen möchten? Ohne den Aufwand, die Ausgabe von grep'ing wget zu bearbeiten, können Sie Folgendes verwenden:

wget -q "http://blah.meh.com/my/path" -O /dev/null

Funktioniert auch bei URLs mit nur einem Pfad, hat jedoch den Nachteil, dass etwas wirklich heruntergeladen wurde, sodass dies nicht empfohlen wird, wenn große Dateien auf Existenz überprüft werden.


Das --spiderArgument setzt einen Rückkehrcode. Aber vielleicht liegt das daran, dass die Spinne nach 4 Jahren, 3 Monaten und 7 Tagen schlauer geworden ist.
John Red

Ich habe es kürzlich nicht überprüft, würde mich aber nicht überraschen, wenn sie es inzwischen reparieren würden.
3ronco

16

Mit der folgenden Option können Sie nach Dateien suchen:

wget --delete-after URL

13

Ja einfach.

wget --spider www.bluespark.co.nz

Das wird dir geben

Resolving www.bluespark.co.nz... 210.48.79.121
Connecting to www.bluespark.co.nz[210.48.79.121]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
200 OK

-3

Wenn Sie sich in einem Verzeichnis befinden, in dem nur root Zugriff zum Schreiben im System hat. Dann können Sie direkt wget www.example.com/wget-testmit einem Standardbenutzerkonto verwenden. Es wird also die URL treffen, aber da keine Schreibberechtigungsdatei vorhanden ist, wird diese nicht gespeichert. Diese Methode funktioniert gut für mich, da ich diese Methode für einen Cronjob verwende. Vielen Dank.

sthx


1
Sollte nicht verwendet werden ... Riskant, da die Berechtigungen des Systemadministrators Ihre Absicht ändern und brechen können und nutzlos sind, wenn ein eingebautes Flag vorhanden ist, --spiderdas genau das tut, was das OP verlangt
Luke Savefrogs
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.