Immer Verzeichnisauflistung über http
Gibt es ein Verzeichnis, der bedient wird über das Netz die ich interessiere mich für überwachung. Inhalte sind verschiedene Versionen der software, die ich verwende, und ich möchte ein Skript schreiben, das könnte ich ausführen, die überprüft, was da ist, und lädt alles, was neuer ist, dass das, was ich schon haben.
Gibt es einen Weg, sagen wir mit wget
oder etwas, zu bekommen ein ein directory-listing. Ich habe versucht, mit wget
auf das Verzeichnis, das gibt mir html. Um zu vermeiden, dass zum Parsen der html-Dokument, gibt es eine Möglichkeit zum abrufen einer einfachen Auflistung wie ls
geben würde?
InformationsquelleAutor ajwood | 2010-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gerade herausgefunden, ein Weg, es zu tun:
Es ist ziemlich ausführlich, so dass Sie brauchen, um Rohr durch
grep
ein paar mal, je nachdem, was du bist nach, aber die information ist alles da. Wie es aussieht, druckt er nach stderr, also append2>&1
zu lassengrep
. Ich grep "\.tar\.gz" hier finden Sie alle tarballs der Website zu bieten hatte.Beachten Sie, dass
wget
schreibt temporäre Dateien im Arbeitsverzeichnis und nicht reinigen Sie Ihre temporären Verzeichnissen. Wenn dies ein problem ist, können Sie ändern, in ein temporäres Verzeichnis:--spider
option macht dies nicht wirklich etwas herunterzuladenIch habe versucht
wget --spider -r --no-parent https://www.kernel.org/pub/software/scm/git/
und es begann zu erstellen Sie eine verschachtelte Verzeichnisstruktur auf der Festplatte – das funktioniert nicht. Ich will nicht alles auf die Festplatte geschrieben, auch wenn es einem einzigen Verzeichnis.Oh ja, scheint
wget
schreiben muss temporäre Dateien. Es löscht die Dateien, lässt aber die Verzeichnisstruktur.. Konnte Sie nur für cd in /tmp, während es läuft?(cd /tmp && wget --spider -r --no-parent https://www.kernel.org/pub/software/scm/git/)
InformationsquelleAutor
Der folgenden ist nicht rekursiv, aber es funktionierte für mich:
Die Ausgabe ist HTML und wird
stdout
. Im Gegensatz zu mitwget
, es wird nichts auf die Festplatte geschrieben.-s
(--silent
) ist dann relevant, wenn die Rohrleitungen die Ausgabe, insbesondere in einem Skript, dass muss nicht laut sein.Wann immer möglich, denken Sie daran, nicht zu verwenden
ftp
oderhttp
statthttps
.InformationsquelleAutor
Wenn es serviert wird, der durch http, dann gibt es keinen Weg, um eine einfache Verzeichnisliste. Die Auflistung, die Sie sehen, wenn Sie durchsuchen es, das ist die, die wget abgerufen wird, erzeugt wird, durch den web-server als HTML-Seite. Alles, was Sie tun können, ist zu analysieren, die Seite und die Informationen extrahieren.
InformationsquelleAutor
Dem, was Ihr bittet am besten serviert mit FTP, kein HTTP.
HTTP hat kein Konzept von Verzeichnissen, FTP,.
Meisten HTTP-Server erlauben keinen Zugriff auf Verzeichnis-listings, und diejenigen, die so tun, als eine Funktion der server, nicht das HTTP-Protokoll. Für diejenigen, die von HTTP-Servern, die Sie entscheiden, zu erstellen und senden Sie eine HTML-Seite für den menschlichen Verzehr, nicht Maschine Verbrauch. Sie haben keine Kontrolle über, und würde keine andere Wahl haben, sondern zum analysieren von HTML.
FTP ist entworfen für Maschine-Verbrauch, mehr so mit der Einführung des
MLST
undMLSD
Befehle, ersetzen Sie die mehrdeutigeLIST
Befehl.WebDAV läuft auf Basis von HTTP, aber nicht Teil von HTTP selbst. Genau wie HTTP läuft über TCP, ist aber nicht Teil von TCP selbst. Sie kann nicht mit WebDAV sprechen Sie mit jedem beliebigen HTTP-server. Sie muss umgesetzt werden, und aktiviert von jedem server. Wie Sie sagte, es ist optional.
Es ist optional, aber der Rest deines Vergleichs ist irreführend. TCP und HTTP sind verschiedene networking-Schichten, während PROPFIND und BEKOMMEN in der genau gleichen Ebene.
InformationsquelleAutor
AFAIK, es gibt keine Möglichkeit, um eine Verzeichnis-Auflistung wie dass für Zwecke der Gefahrenabwehr. Es ist eher Glück, dass Ihre target-Verzeichnis die HTML-Liste, weil es nicht erlaubt, Sie zu analysieren und entdecken Sie neue downloads.
Wenn es eine index.html oder eine ähnliche Seite, würde es Sinn machen, zu verbieten, Verzeichnis-Auflistung aus Gründen der Sicherheit. Es scheint mir komisch, dass wenn ein Verzeichnis wird roh serviert (gut, mit html erzeugt, es zu machen, pretty) es sollte uneingeschränkt zugänglich sein für etwas so harmlos wie ein directory-listing.
InformationsquelleAutor