wget Command Beispiele

Wget ist ein hervorragendes Tool, das einen benutzerdefinierten und gefilterten Download von Dateien und Webseiten auch auf einem Computer mit begrenzten Ressourcen ermöglicht.

Der Wget Command ist Teil des GNU Projects. Die Namensgebung des Tools kommt vom World Wide Web (WWW).

Einige der Features sind:

  • Download großer Dateien mit optionalem fortsetzen abgebrochener Downloads
  • Spiegeln kompletter Web- und FTP-Seiten, inklusive rekursivem Download
  • Download mehrerer Dateien zeitgleich
  • Regulieren von Bandbreite und Download-Geschwindigkeit beim Herunterladen.
  • Proxy-Support für Downloads.
  • SSL/TLS Support für Downloads
  • Kann im Hintergrund laufen

Installation von wget in Linux

Wget ist im Regelfall auf den meisten Systemen bereits installiert. Sollte dies in Ausnahmefällen nicht der Fall sein, kann man wget wie folgt nachinstallieren:

Installation von wget unter Debian/Ubuntu

sudo apt install -y wget

Installation von wget unter Open Suse

sudo zypper install wget

Installation von wget unter Dedora/CentOS

sudo dnf install wget

Installation von wget unter Arch/Manjaro

sudo pacman -S wget

wget Command Beispiele

Der command syntax von Wget ist:

wget [option] [URL]

1. wget Basis-Command

Lade eine Datei mit Hilfe von wget herunter:

wget http://www.website-name.de/file.zip

Die Datei wird dabei mit dem Dateinamen auf dem Server in dem aktuellen Verzeichnis gespeichert.

2. Wget Download und umbenennen der Zieldatei

Mit Hilfe der -O (uppercase) Flag kann man der Zieldatei einen eigenen Namen geben.

Im folgenden Beispiel laden wir wget herunter und speichern die Datei unter wget.zip ab.

wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

3. Wget - Herunterladen mehrere Dateien

wget http://www.website-name.de/file1.zip ftp://website-name.de/file2.zip

4. Wget - Herunterladen mehrerer Dateien aus einer Text-Datei heraus

Hat man eine große Kollektion a Dateien zum herunterladen, kann man die URLs in Beispielsweise einer txt Datei ablegen und diese der Reihe nach herunterladen lassen.

Im Beispiel nehmen wie eine txt Datei mit folgendem Inhalt:

https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso

Wget erwartet eine reine Text-Datei mit einer URL pro Zeile. Die Date können wir unter /opt/linux-downloads.txt speichern.

Anschließend starten wir wget mit der Flag -i und dem Pfad zu dieser Datei:

wget -i /opt/linux-downloads.txt

5. Wget - fortsetzen eines unterbrochenen Downloads

Ab und an kommt es noch vor, dass der Download großer Dateien unterbrochen wird. In diesem Fall bietet wget auch die Option, einen Download wieder aufzunehmen. In diesem Fall muss man nur die Flag -c anhängen:

wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Beachte
Wenn man mit dem Herunterladen von Dateien beginnt, ohne -c und anschließend mit der Option -c neu startet, nimmt wget an, es handelt sich um einen neuen Download und fügt die Erweiterung .1 am Ende der Datei hinzu. Es empfiehlt sich, große Dateien immer mit der -c Flag zu starten. So ändert sich auch bei erneuter Aufnahme der Dateiname nicht.

6. Wget - rekursiver Download

Rekursive Downloads kann man über die Flag -r (oder auch --recursive) erreichen.

Wget - Download einer gesamten Webseite

wget -r http://www.website-name.de

Wget - Mirror einer gesamten Website

Um eine gesamte Website offline verfügbar zu machen (inklusive JavaScript/Css/Bilder) braucht es ein paar zusätzliche Optionen:

wget -r --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.de --no-parent yoursite.de

Breakdown des obigen Commands:

wget \
     -r \ # Rekursiv.
     --page-requisites \ # Alle Assets inklusive (CSS/JS/Bilder).
     --adjust-extension \ # Speichere die Dateien mit `.html` Endung
     --span-hosts \ # Folge auch fremden hosts.
     --convert-links \ # Aktualisiere Links um auch offline in der statischen Version zu funktionieren.
     --restrict-file-names=windows \ # Verwendbare Zeichen in Dateinamen einschränken auf vom Betriebssystem unterstützte/erlaubte Zeichen.
     --domains beispiel.de \ # Folge keinen Links außerhalb der Domain-Whitelist (komma-separiert)
     --exclude-domains google.de \ # Domain-Blacklist (Gegenteil von `--domains`) kann alternativ verwendet werden (komma-separiert)
     --no-parent \ # Folge keinen übergeordneten Links im Falle einer Pfadangabe in der URL
         beispiel.de/optional/path # Die URL zum herunterladen

Wget - rekursiver Download spezieller Datei-Endungen

Will man Beispielsweise nur pdf-, zip- und png- Dateien herunterladen, kann man mit der Flag -A die Dateien filtern:

wget -r -A pdf,png,zip http://www.website-name.de

7. Wget - Background-Downloads

Um den/die Download(s) im Hintergrund laufen zu lassen, kann man die Flag -b (alternativ: --background angeben).

wget -b https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Benötigt man eine Log-Ausgabe über den Erfolg eines Downloads kann man den Background-Task auch in eine Log-Datei schreiben lassen:

wget -b -a ~/wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Oder auch für eine Datei-Liste:

wget -c -b -a ~/wget.log -i /opt/linux-downloads.txt

8. Wget - Download Speed Limits

wget -c --limit-rate=100k -b -a wget.log -i /opt/linux-downloads.txt

9. Wget - Download Passwort geschützte Dateien via FTP und HTTP

Wget - Download Passwort geschützte Dateien via FTP

wget --ftp-user=qm-b --ftp-password=password ftp://ftp.beispiel.de/filename.zip

Wget - Download Passwort geschützte Dateien via HTTP

wget --http-user=qm-b --http-password=password https://www.beispiel.de/filename.zip

10. Wget - Ignorieren von SSL Zertifikat-Checks

Um den SSL Zertifikat-Check für den Datei-Download via HTTPS zu unterbinden, kann man die --no-check-certificate Option angeben:

wget --http-user=qm-b --http-password=password https://www.beispiel.de/filename.zip

11. Wget - Versions-Nummer und Hilfe

wget -v
wget --version
wget -h
wget --help