Frage

Es ist ein Verzeichnis, das über das Netz bedient wird, die ich bei der Überwachung interessiert bin. Sein Inhalt sind verschiedene Versionen der Software, die ich verwende, und ich möchte ein Skript schreiben, dass ich die die Kontrollen laufen konnte, was da ist, und Downloads alles, was neuere ist das, was ich schon habe.

Gibt es eine Möglichkeit, sagt mit wget oder so etwas, ein einer Verzeichnisliste zu bekommen. Ich habe versucht, auf das Verzeichnis mit wget, die mir html gibt. Um zu vermeiden, das HTML-Dokument zu analysieren, ist es eine Möglichkeit, eine einfache Abrufen von Listing wie ls geben würde?

War es hilfreich?

Lösung

Ich fand heraus, nur einen Weg, es zu tun:

$ wget --spider -r --no-parent http://some.served.dir.ca/

Es ist ziemlich ausführlich, so dass Sie mit dem Rohr durch grep ein paar Mal müssen je nachdem, was Sie nach, aber die Information ist alles da. Es sieht aus wie es in stderr druckt, so append 2>&1 grep es zu lassen. Ich grep für „\ TAR \ .gz“, um alle der tarballs zu finden die Website zu bieten hatte.

Beachten Sie, dass wget temporäre Dateien im Arbeitsverzeichnis schreibt, und nicht aufzuräumen seine temporären Verzeichnisse. Wenn dies ein Problem ist, können Sie in ein temporäres Verzeichnis ändern:

$ (cd /tmp && wget --spider -r --no-parent http://some.served.dir.ca/)

Andere Tipps

Was Sie für die besten fragen serviert FTP, HTTP nicht.

HTTP kein Konzept von Verzeichnislisten hat, tut FTP.

Die meisten HTTP-Server erlauben keinen Zugriff auf Verzeichnislisten, und diejenigen, die das tun, tun dies als ein Merkmal des Servers, nicht das HTTP-Protokoll. Für die HTTP-Servern, entscheiden sie eine HTML-Seite für menschlichen Verzehr , nicht Maschinenverbrauch zu generieren und senden. Sie haben keine Kontrolle über das, und keine andere Wahl haben würde, aber die HTML zu analysieren.

FTP ist für den Maschinenverbrauch, um so mehr mit der Einführung der MLST und MLSD Befehle, die den mehrdeutigen LIST Befehl ersetzen.

Im Folgenden ist nicht rekursiv, aber es funktionierte für mich:

$ curl -s https://www.kernel.org/pub/software/scm/git/

Der Ausgang ist HTML und wird stdout geschrieben. Anders als bei wget, gibt es nichts auf die Platte geschrieben.

-s (--silent) ist relevant, wenn die Ausgangsrohrleitungen, insbesondere in einem Skript, das nicht laut sein muss.

Wann immer möglich, denken Sie daran nicht zu verwenden ftp oder http statt https.

Wenn es von http serviert wird dann gibt es keine Möglichkeit, ein einfaches Verzeichnis zu erhalten auflistet. Das Angebot, das Sie sehen, wenn Sie dort zu sehen, was der eine ist wget abruft, wird von dem Web-Server als HTML-Seite generiert. Alles, was Sie ist Parse dieser Seite tun können, und die Informationen extrahieren.

AFAIK, gibt es keine Möglichkeit, ein Verzeichnis zu erhalten wie die Auflistung zu Sicherheitszwecken. Es ist vielmehr das Glück, dass Ihr Zielverzeichnis der HTML-Eintrag hat, weil es Ihnen, es analysieren lässt und entdecken Sie neue Downloads.

Sie können mit IDM (Internet Download-Manager)
Es hat ein Programm mit dem Namen „IDM SITE GRABBER“ -Eingang die http/https URLs und es werden alle Dateien und Ordner von http/https Protokoll für Sie herunterladen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top