AA_PO-21917-123RF-P_eacute_ter_Gudella_123RF-Netzwerkkabel.jpg

© Péter Gudella, 123RF

Mit wget Dateien von Web- und FTP-Servern ziehen

Offline surfen

"wget" spiegelt Inhalte von Web- und FTP-Servern, kann abgebrochene Downloads fortsetzen und bietet eine praktische Update-Funktion, mit der Sie bei Änderungen immer auf dem neuesten Stand bleiben.

Grafische Downloadmanager wie KGet [1] machen das Herunterladen ganzer Web-Archive kinderleicht – allerdings dauert es manchmal eine kleine Ewigkeit, sich durch die ganzen Konfigurationsdialoge zu klicken. Als Alternative bietet sich auf der Kommandozeile wget an: Wir zeigen, wie Sie geschickt Optionen kombinieren und damit die wichtigsten wget-Features nutzen.

Alle Optionen des Programms haben eine kurze und eine lange Form. So lässt sich wget beispielsweise mit -r oder --recursive starten – beide Parameter bewirken das Gleiche. Meist haben die langen Versionen eine größere Aussagekraft und lassen sich daher leichter merken, bedeuten aber höheren Tippaufwand. Für den Fall, dass Sie eine Kurzfassung vergessen haben, bietet sich ein Blick in die Manpage an (man wget). Alternativ erhalten Sie eine Kurzdarstellung aller Optionen auf der Kommandozeile, wenn Sie wget -h (--help) tippen. In diesem Artikel stehen alternative Schreibweisen für Parameter in Klammern hinter der Kurzform.

Richtig verbunden

Für den ersten Programmaufruf stellen Sie zunächst sicher, dass es eine funktionierende Internet-Verbindung gibt. Außerdem empfiehlt es sich, ein Testverzeichnis anzulegen und in dieses hineinzuwechseln:

mkdir wgettest
cd wgettest

Jetzt ist es Zeit für den ersten wget-Aufruf. Geben Sie eine Web-Adresse an, die Sie herunterladen möchten – wget berichtet auf der Konsole, was im Hintergrund abläuft (Listing 1).

Listing 1

Erster Wget-Test

huhn@susevm:~> wget www.easylinux.de
--2016-10-04 10:31:08--  http://www.easylinux.de/
Auflösen des Hostnamen »www.easylinux.de (www.easylinux.de)«... 195.122.146.187
Verbindungsaufbau zu www.easylinux.de (www.easylinux.de)|195.122.146.187|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 18753 (18K) [text/html]
In »»index.html«« speichern.
100%[======================================>] 18.753      --.-K/s   in 0,09s
2016-10-04 10:31:08 (211 KB/s) - »»index.html«« gespeichert [18753/18753]

Neben der Uhrzeit und der zu spiegelnden Adresse sehen Sie, dass wget den Hostnamen, also den Namen des Zielrechners, auflöst. "Auflösen" bedeutet hier, dass wget zum Namen die zugehörige IP-Adresse (62.245.157.216) ermittelt. wget verbindet sich nun mit dem Web-Server von EasyLinux (":80" steht hier für Port 80, den Standard-Port für HTTP). Danach folgen Größe und Dateityp ([text/html]), und der Download beginnt. Die Statusanzeige (====>) informiert Sie, wie weit der Download fortgeschritten ist.

Wer diese Angaben nicht sehen möchte, teilt dies dem Programm einfach über den Parameter -q (--quiet, englisch "quiet" = leise, still) mit. Der Aufruf lautet dann wget -q www.easylinux.de. Damit eventuelle Fehlermeldungen und/oder ein paar grundlegende Informationen dennoch durchkommen, gibt es eine Zwischenlösung – wget -nv www.easylinux.de (--non-verbose) meldet nicht ganz so viel wie der Standardaufruf, schweigt sich aber auch nicht vollkommen aus.

Im aktuellen Verzeichnis befindet sich jetzt die Datei index.htmlwget hat allerdings weder Bilder noch Unterverzeichnisse kopiert.

Ich will alles!

Um in die Tiefe zu gehen und auch Bilder und Unterverzeichnisse vom Server herunterzuladen, verwenden Sie die Option -r (--recursive) – wget folgt nun den Links und der Verzeichnisstruktur des Servers. Dabei erscheinen Ausgaben ähnlich wie in Listing 1 für jede Datei, die das Tool herunterlädt.

In Ihrem Testverzeichnis liegt nun ein Unterverzeichnis www.easylinux.de, in das rekursiv die Struktur des EasyLinux-Web-Servers übertragen wurde (Abbildung 1). (Sie werden diesen Vorgang in der Regel abbrechen wollen, da sonst wirklich der gesamte Inhalt unseres Web-Servers heruntergeladen wird.) In diesem Zusammenhang bietet sich die Option -l tiefe (--level=tiefe) an, wobei tiefe für die Verzeichnistiefe steht, in die Sie vordringen wollen. Standardmäßig spiegelt wget fünf Level. Um lediglich die Struktur bis zu einem Unterverzeichnis zu übertragen, verwenden Sie wget -r -l1 www.easylinux.de.

Abbildung 1: Beim rekursiven Herunterladen legt "wget" Schritt für Schritt eine lokale Kopie des Webservers an.

Wer häufiger vom gleichen Server Daten spiegelt, wird sich über den Parameter -N (--timestamping) freuen: wget vergleicht damit für jede Datei die Größe und das Datum mit einer bereits vorhandenen lokalen Kopie (Listing 2).

Listing 2

Nur aktualisierte Dateien ziehen

huhn@susevm:~> wget -r -l1 -N www.easylinux.de
--2016-10-04 10:37:32--  http://www.easylinux.de/
Auflösen des Hostnamen »www.easylinux.de (www.easylinux.de)«... 195.122.146.187
Verbindungsaufbau zu www.easylinux.de (www.easylinux.de)|195.122.146.187|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 1016 [text/html]Größen stimmen nicht überein (lokal 18753) -- erneuter Download.
[...]
--2016-10-04 10:37:32--  http://www.easylinux.de/pix/clear.gif
Wiederverwendung der bestehenden Verbindung zu www.easylinux.de:80.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 43 [image/gif]Datei auf dem Server nicht neuer als die lokale Datei »»www.easylinux.de/pix/clear.gif«« -- kein Download.

In diesem Beispiel ist schön zu sehen: Die Größe der Datei index.html hat sich seit dem letzten Download geändert; wget spiegelt die Datei daher noch einmal. Für die Datei clear.gif wird hingegen erkannt, dass die Datei auf dem Server nicht neuer ist, und der erneute Download wird ausgesetzt – das spart Zeit und Transfervolumen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

EL 11/2017-01/2018: Einstieg in Linux

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet 9,80 Euro. Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 33,30 Euro. Details dazu finden Sie im Computec-Shop.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Stellenmarkt

Aktuelle Fragen

EasyBCD/NeoGrub
Wolfgang Conrad, 17.12.2017 11:40, 0 Antworten
Hallo zusammen, benutze unter Windows 7 den EasyBCD bzw. NEOgrub, um LinuxMint aus einer ISO Dat...
Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...