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
-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