So verwenden Sie den Wget-Befehl in Linux mit Beispielen

In diesem Artikel werden wir das Dienstprogramm wget überprüfen, das Dateien aus dem World Wide Web (WWW) mithilfe weit verbreiteter Protokolle wie HTTP, HTTPS, FTP und FTPS abruft.

Wget ist ein kostenloses Kommandozeilen-Dienstprogramm und Netzwerk-Datei-Downloader, das viele Funktionen bietet, die den Dateidownload erleichtern, einschließlich:

  • Herunterladen großer Dateien oder Spiegeln kompletter Web- oder FTP-Sites.
  • Herunterladen mehrerer Dateien auf einmal.
  • Bandbreite und Geschwindigkeitsbegrenzung für Downloads festlegen.
  • Dateien über Proxys herunterladen.
  • Abgebrochene Downloads fortsetzen können.
  • Rekursives Spiegeln von Verzeichnissen.
  • Läuft auf den meisten UNIX-ähnlichen Betriebssystemen sowie Windows.
  • Unbeaufsichtigter / Hintergrundbetrieb.
  • Unterstützung für persistente HTTP-Verbindungen.
  • Unterstützung für SSL/TLS für verschlüsselte Downloads unter Verwendung der OpenSSL- oder GnuTLS-Bibliothek.
  • Unterstützung für IPv4- und IPv6-Downloads.

Wget Befehlssyntax

Die grundlegende Syntax von Wget ist:

$ wget [option] [URL]

Zuerst überprüfen Sie, ob das wget-Dienstprogramm bereits in Ihrem Linux-System installiert ist oder nicht, indem Sie den folgenden Befehl verwenden.

$ rpm -q wget         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ dpkg -l | grep wget [On Debian, Ubuntu and Mint]

Installieren Sie Wget auf Linux

Wenn Wget nicht installiert ist, können Sie es mit dem Standard-Paketmanager Ihres Linux-Systems installieren, wie unten gezeigt.

$ sudo apt install wget -y      [On Debian, Ubuntu and Mint]
$ sudo yum install wget -y      [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/wget  [On Gentoo Linux]
$ sudo pacman -Sy wget           [On Arch Linux]
$ sudo zypper install wget      [On OpenSUSE]    

Die hier verwendete Option -y dient dazu, Bestätigungsdialoge vor der Installation eines Pakets zu verhindern. Für weitere YUM– und APT-Befehlsbeispiele und Optionen lesen Sie unsere Artikel über:

1. Eine Datei mit Wget herunterladen

Der Befehl lädt eine einzelne Datei herunter und speichert sie im aktuellen Verzeichnis. Es zeigt auch den Download-Fortschritt, Größe, Datum und Uhrzeit während des Downloads an.

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

--2021-12-10 04:15:16--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   3.40M  2.31MB/s    in 1.5s    

2021-12-10 04:15:18 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

2. Wget Datei mit anderem Namen herunterladen

Mit der Option -O (Großbuchstabe) werden Dateien mit unterschiedlichen Dateinamen heruntergeladen. Hier haben wir den Dateinamen wget.zip wie unten gezeigt angegeben.

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

--2021-12-10 04:20:19--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: ‘wget.zip’

wget.zip      100%[===================>] 436.49K   510KB/s    in 0.9s    

2021-12-10 04:20:21 (510 KB/s) - ‘wget.zip’ saved [446966/446966]

3. Wget Mehrere Dateien mit HTTP- und FTP-Protokoll herunterladen

Hier sehen wir, wie man gleichzeitig mehrere Dateien mit dem Befehl wget unter Verwendung des HTTP– und FTP-Protokolls herunterlädt.

$ wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig

--2021-12-10 06:45:17--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   4.40M  4.31MB/s    in 1.1s    

2021-12-10 06:46:10 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

4. Wget Mehrere Dateien von einer Datei herunterladen

Um mehrere Dateien gleichzeitig herunterzuladen, verwenden Sie die Option -i mit dem Speicherort der Datei, die die Liste der URLs enthält, die heruntergeladen werden sollen. Jede URL muss wie unten gezeigt auf einer separaten Zeile hinzugefügt werden.

Zum Beispiel enthält die folgende Datei ‚download-linux.txt‚ die Liste der URLs, die heruntergeladen werden sollen.

# cat download-linux.txt 

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 -i download-linux.txt

--2021-12-10 04:52:40--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.88.247, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3071934464 (2.9G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64   4%[=>      ] 137.71M  11.2MB/s    eta 3m 30s
...

Wenn Ihre URL-Liste ein bestimmtes Nummerierungsmuster aufweist, können Sie geschweifte Klammern hinzufügen, um alle URLs abzurufen, die dem Muster entsprechen. Wenn Sie beispielsweise eine Reihe von Linux-Kerneln ab Version 5.1.1 bis 5.1.15 herunterladen möchten, können Sie Folgendes tun.

$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz

--2021-12-10 05:46:59--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’

linux-5.1.1.tar.gz      100%[===========>] 156.51M  2.59MB/s    in 61s     

2021-12-10 05:48:01 (2.57 MB/s) - ‘linux-5.1.1.tar.gz’ saved [164113671/164113671]

--2021-12-10 05:48:01--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz
Reusing existing connection to mirrors.edge.kernel.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 164110470 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.2.tar.gz’

linux-5.1.2.tar.gz     19%[===========]  30.57M  2.58MB/s    eta 50s

5. Wget Wiederaufnahme des unvollständigen Downloads

Im Falle eines Downloads großer Dateien kann es manchmal vorkommen, dass der Download abbricht. In diesem Fall können wir den Download an der Stelle fortsetzen, an der er unterbrochen wurde, mit der Option -c.

Aber wenn Sie Dateien ohne Angabe der Option -c herunterladen, fügt wget eine Erweiterung .1 am Ende der Datei hinzu, was als Neudownload betrachtet wird. Es ist daher ratsam, den Schalter -c hinzuzufügen, wenn Sie große Dateien herunterladen.

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

--2021-12-10 05:27:59--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.247, 91.189.91.123, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        5%[++++++> ]   167.93M  11.1MB/s               
^C
[root@tecmint ~]# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
--2021-12-10 05:28:03--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.91.124, 91.189.91.123, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        10%[+++++++=====> ] 296.32M  17.2MB/s    eta 2m 49s ^

6. Wget Gesamte Website spiegeln

Um eine gesamte Website zum Offline-Betrachten herunterzuladen, zu klonen oder zu kopieren, können Sie den folgenden Befehl verwenden, der eine lokale Kopie der Website zusammen mit allen Assets (JavaScript, CSS, Bilder) erstellt.

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

Erklärung des obigen Befehls.

wget \
     --recursive \ # Download the whole site.
     --page-requisites \ # Get all assets/elements (CSS/JS/images).
     --adjust-extension \ # Save files with .html on the end.
     --span-hosts \ # Include necessary assets from offsite as well.
     --convert-links \ # Update links to still work in the static version.
     --restrict-file-names=windows \ # Modify filenames to work in Windows as well.
     --domains yoursite.com \ # Do not follow links outside this domain.
     --no-parent \ # Don't follow links outside the directory you pass in.
         yoursite.com/whatever/path # The URL to download

7. Wget Dateien im Hintergrund herunterladen

Mit der Option -b können Sie einen Download sofort nach dem Start des Downloads in den Hintergrund verschieben und die Protokolle im wget.log -Datei geschrieben werden.

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

Continuing in background, pid 8999.
Output will be written to ‘wget.log’.

8. Wget Geschwindigkeitsbegrenzungen für Datei-Downloads festlegen

Mit der Option --limit-rate=100k wird die Download-Geschwindigkeitsbegrenzung auf 100k beschränkt und die Protokolle werden unter wget.log wie unten gezeigt erstellt.

$ wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 9108.
Output will be written to ‘wget-log’.

Sehen Sie sich die wget.log -Datei an und überprüfen Sie die Download-Geschwindigkeit des wget.

$ tail -f wget-log 

 5600K .......... .......... .......... .......... ..........  0%  104K 8h19m
 5650K .......... .......... .......... .......... ..........  0%  103K 8h19m
 5700K .......... .......... .......... .......... ..........  0%  105K 8h19m
 5750K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5800K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5850K .......... .......... .......... .......... ..........  0%  105K 8h18m
 5900K .......... .......... .......... .......... ..........  0%  103K 8h18m
 5950K .......... .......... .......... .......... ..........  0%  105K 8h18m
 6000K .......... .......... .......... .......... ..........  0% 69.0K 8h20m
 6050K .......... .......... .......... .......... ..........  0%  106K 8h19m
 6100K .......... .......... .......... .......... ..........  0% 98.5K 8h20m
 6150K .......... .......... .......... .......... ..........  0%  110K 8h19m
 6200K .......... .......... .......... .......... ..........  0%  104K 8h19m
 6250K .......... .......... .......... .......... ..........  0%  104K 8h19m
...

9. Wget Passwortgeschützte Dateien über FTP und HTTP herunterladen

Um eine Datei von einem passwortgeschützten FTP-Server herunterzuladen, können Sie die Optionen --ftp-user=username und --ftp-password=password wie gezeigt verwenden.

$ wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz

Um eine Datei von einem passwortgeschützten HTTP-Server herunterzuladen, können Sie die Optionen --http-user=username und --http-password=password wie gezeigt verwenden.

$ wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz

10. Wget Ignoriere SSL-Zertifikatsüberprüfung

Um die Überprüfung des SSL-Zertifikats beim Herunterladen von Dateien über HTTPS zu ignorieren, können Sie die Option --no-check-certificate verwenden:

$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz

--2021-12-10 06:21:21--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
...

11. Wget Version und Hilfe

Mit den Optionen --version und --help können Sie bei Bedarf die Version und Hilfe anzeigen.

$ wget --version
$ wget --help

In diesem Artikel haben wir Linux-wget-Befehle mit Optionen für tägliche Administrationsaufgaben behandelt. Möchten Sie mehr darüber erfahren? Sehen Sie sich die man-Seite von wget an oder teilen Sie uns durch unser Kommentarfeld mit, falls wir etwas übersehen haben.

Source:
https://www.tecmint.com/10-wget-command-examples-in-linux/