GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Tipps und Tricks zur Verwendung des Linux-Befehls wget

Wget ist ein Befehlszeilen-Open-Source-Dienstprogramm zum Herunterladen von Dateien und Webseiten aus dem Internet. Es erhält Daten aus dem Internet und zeigt sie in Ihrem Terminal an oder speichert sie in einer Datei. Das Dienstprogramm wget ist nicht interaktiv. Sie können es durch Skripte optimal nutzen oder sogar Dateidownloads planen.

Typischerweise laden Webbrowser wie Firefox oder Chromium auch Dateien herunter, außer dass sie die Informationen standardmäßig in einem grafischen Fenster darstellen und erfordern, dass ein Benutzer mit ihnen interagiert. Alternativ verwenden andere Linux-Systembenutzer den curl-Befehl, um Daten von einem Netzwerkserver zu übertragen.

Der Artikel veranschaulicht, wie man den Befehl wget verwendet, um Webseiten und Dateien aus dem Internet herunterzuladen.

wget unter Linux installieren

So installieren Sie wget auf Ubuntu/Debian-basierten Linux-Systemen:

$ apt-get install wget

So installieren Sie Wget unter Red Hat/CentOS:

$ yum install wget

So installieren Sie wget auf Fedora:

$ dnf install wget

Herunterladen einer Datei mit dem Befehl wget

Sie können eine Datei mit wget herunterladen, indem Sie einen bestimmten Link zu einer URL angeben. Wenn Ihre URL standardmäßig index.html lautet, wird die Indexseite heruntergeladen. Standardmäßig wird der Inhalt in eine Datei mit demselben Dateinamen in Ihrem aktuellen Arbeitsverzeichnis heruntergeladen. Der wget-Befehl bietet auch mehrere Optionen, um die Ausgabe an less oder tail weiterzuleiten.

[#####@fedora ~]$ wget http://example.com | tail -n 6
--2021-11-09 12:06:02-- http://example.com/
Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com (example.com)|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: ‘index.html.1’
index.html.1 100%[======================>] 1.23K --.-KB/s in 0s
2021-11-09 12:06:03 (49.7 MB/s) - ‘index.html.1’ saved [1256/1256]

Heruntergeladene Daten an die Standardausgabe senden

Sie können das -output-document mit einem Bindestrich – verwenden, um Ihre heruntergeladenen Daten an die Standardausgabe zu senden.

[#######@fedora ~]$ wget http://example.com --output-document - | head -n8
--2021-11-09 12:17:11-- http://example.com/
Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com (example.com)|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: ‘STDOUT’
<!doctype html> 0%[ ] 0 --.-KB/s 
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- 100%[======================>] 1.23K --.-KB/s in 0s
2021-11-09 12:17:12 (63.5 MB/s) - written to stdout [1256/1256]

Downloads unter einem anderen Dateinamen speichern

Sie können die Option –output-document oder -O verwenden, um einen anderen Ausgabedateinamen für Ihren Download anzugeben.

$ wget http://fosslinux.com --output-document foo.html
$ wget http://fosslinux.com -O foofoofoo.html

Herunterladen einer Folge von Dateien

Wget kann mehrere Dateien herunterladen, wenn Sie den Speicherort und das Dateinamenmuster der Dateien kennen. Sie können die Bash-Syntax verwenden, um einen Bereich von Ganzzahlen anzugeben, um eine Folge von Dateinamen von Anfang bis Ende darzustellen.

$ wget http://fosslinux.com/filename_{1..7}.webp

Mehrere Seiten und Dateien herunterladen

Sie können mehrere Dateien mit dem Befehl wget herunterladen, indem Sie alle URLs angeben, die die herunterzuladenden Dateien enthalten.

$ wget URL1 URL2 URL3

Teilweises Herunterladen fortsetzen

Wenn Sie große Dateien herunterladen, kann es zu Unterbrechungen des Downloads kommen. Wget kann feststellen, wo Ihr Download gestoppt wurde, bevor es mit dem teilweisen Download fortfährt. Es ist praktisch, wenn Sie große Dateien wie eine Fedora 35 Linux-Distribution ISO herunterladen. Um einen Download fortzusetzen, verwenden Sie die Option –Continue oder -c.

$ wget --continue https://fosslinux.com/foss-linux-distro.iso

Rekursive Downloads mit dem Befehl wget verwalten

Verwenden Sie die Option –recursive oder -r, um rekursive Downloads mit dem Befehl wget zu aktivieren. Der rekursive wget-Modus durchsucht eine bereitgestellte Site-URL und folgt allen Links bis zur Standard- oder einer angegebenen maximalen Tiefe.

$ wget -r fosslinux.com

Standardmäßig beträgt die maximale rekursive Downloadtiefe 5. wget bietet jedoch die Option -l, um Ihre maximale Rekursionstiefe anzugeben.

$ wget -r -l 11 fosslinux.com

Sie können die unendliche Rekursion mit der Option „-l 0“ angeben. Beispielsweise lädt wget alle Dateien einer Website herunter, wenn Sie die maximale Tiefe auf Null setzen (-l 0).

Konvertieren von Links für die lokale Anzeige

Die –convert-links ist eine weitere wichtige wget-Option, die Links konvertiert, um sie für die lokale Anzeige geeignet zu machen.

$ wget -r l 3 --convert-links fosslinux.com

Herunterladen bestimmter Dateitypen

Sie können die Option -A mit dem Befehl wget verwenden, um bestimmte Dateitypen während rekursiver Downloads herunterzuladen. Verwenden Sie beispielsweise den folgenden wget-Befehl, um PDF-Dateien von einer Website herunterzuladen.

$ wget -A '*.pdf -r fosslinux.com

Beachten Sie, dass die rekursive maximale Abruftiefe standardmäßig auf 5 begrenzt ist.

Herunterladen von Dateien vom FTP-Server

Der Befehl wget kann nützlich sein, wenn Sie Dateien von einem FTP-Server herunterladen müssen.

$ wget --ftp-user=username --ftp-password=password ftp://192.168.1.13/foofoo.pdf

Im obigen Beispiel lädt wget „foofoo.pdf“ vom FTP-Server unter 192.168.1.10 herunter.

Sie können auch die rekursive Option -r mit dem FTP-Protokoll verwenden, um FTP-Dateien rekursiv herunterzuladen.

$ wget -r --ftp-user=username --ftp-password=pass ftp://192.168.1.13/

Festlegen der maximalen Downloadgröße mit dem Befehl wget

Sie können die maximale Downloadgröße während rekursiver Dateiabrufe mit der Flag-Option –quota festlegen. Sie können die Download-Größe in Byte (Standard), Kilobyte (Suffix k) oder Megabyte (Suffix m) angeben. Der Download-Vorgang wird abgebrochen, wenn das Limit überschritten wird.

$ wget -r --quota=1024m fosslinux.com

Beachten Sie, dass sich Download-Kontingente nicht auf das Herunterladen einer einzelnen Datei auswirken.

Festlegen der Download-Geschwindigkeitsbegrenzung mit dem Befehl wget

Sie können auch die Flag-Option wget –limit-rate verwenden, um die Download-Geschwindigkeit beim Herunterladen von Dateien zu begrenzen. Der folgende Befehl lädt beispielsweise die Datei „foofoo.tar.gz“ herunter und begrenzt die Download-Geschwindigkeit auf 256 KB/s.

$ wget --limit-rate=256k URL/ foofoo.tar.gz

Beachten Sie, dass Sie die gewünschte Downloadrate in Byte (ohne Suffix), Kilobyte (mit Suffix k) oder Megabyte (mit Suffix m) ausdrücken können.

Spiegeln einer Website mit dem Befehl wget

Mit der Option –mirror können Sie eine ganze Site herunterladen oder spiegeln, einschließlich ihrer Verzeichnisstruktur. Das Spiegeln einer Site ähnelt dem rekursiven Download ohne maximale Tiefe. Sie können auch die Option –recursive –level inf –timestamping –no-remove-listing verwenden, was bedeutet, dass sie unendlich rekursiv ist.

Sie können auch wget verwenden, um eine Website mit den Optionen –no-cookies –page-requisites –convert-links zu archivieren. Es lädt vollständige Seiten herunter und stellt sicher, dass die Kopie der Website in sich geschlossen und der ursprünglichen Website ähnlich ist.

$ wget --mirror --convert-links fosslinux.com 
$ wget -recursive --level inf --timestamping –no-remove-listing

Beachten Sie, dass beim Archivieren einer Website viele Daten heruntergeladen werden, insbesondere wenn die Website alt ist.

URLs aus einer Textdatei lesen

Der Befehl wget kann mit der Option -i mehrere URLs aus einer Textdatei lesen. Die Eingabetextdatei kann mehrere URLs enthalten, aber jede URL muss in einer neuen Zeile beginnen.

$ wget -i URLS.txt

Erweitern einer verkürzten URL

Sie können die Option wget –max-redirect verwenden, um verkürzte URLs vor Ihrem Besuch anzuzeigen. Verkürzte URLs sind für Printmedien oder in sozialen Netzwerken mit Zeichenbeschränkung unerlässlich. Darüber hinaus können verkürzte URLs auch verdächtig sein, da ihr Ziel standardmäßig verborgen ist.
Hinweis:Eine bessere Vorgehensweise besteht darin, die Optionen –head und –location zu kombinieren, um die HTTP-Header anzuzeigen und das endgültige URL-Ziel zu enträtseln. Es ermöglicht Ihnen, einen Blick auf eine verkürzte URL zu werfen, ohne die vollständige Ressource zu laden.

[######@fedora ~]$ wget --max-redirect 0 https://t.co/GVr5v9554B?amp=1
--2021-11-10 16:22:08-- https://t.co/GVr5v9554B?amp=1
Resolving t.co (t.co)... 104.244.42.133, 104.244.42.69, 104.244.42.5, ...
Connecting to t.co (t.co)|104.244.42.133|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://bit.ly/ [following]
0 redirections exceeded.

Hinweis:Das beabsichtigte Ziel wird in der Ausgabezeile angezeigt, die mit location.

beginnt

Ändern von HTML-Headern

HTTP-Header-Informationen sind eine der Metadateninformationen, die in die Pakete eingebettet sind, die Computer senden, um während des Datenaustauschs zu kommunizieren. Beispielsweise sendet Ihr Browser jedes Mal, wenn Sie eine Website besuchen, HTTP-Anforderungsheader. Sie können die Option –debug verwenden, um die Header-Informationen anzuzeigen, die wget für jede Anfrage an Ihren Browser sendet.

[#####@fedora ~]$ wget --debug fosslinux.com
DEBUG output created by Wget 1.21.1 on linux-gnu.
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.21.1
Accept: */*
Accept-Encoding: identity
Host: fosslinux.com
Connection: Keep-Alive
---request end---
HTTP request sent, awaiting response...
---response begin---

Antwortheader mit dem Befehl wget anzeigen

Sie können die Option –debug verwenden, um Antwort-Header-Informationen in Antwortantworten anzuzeigen.

[#####@fedora ~]$ wget --debug fosslinux.com
…..
---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 10 Nov 2021 13:36:29 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Cache: HIT
---response end---
200 OK

Auf einen 301-Antwortcode antworten

HTTP-Antwortstatuscodes sind für Webadministratoren unerlässlich. Normalerweise bedeutet ein 301-HTTP-Antwortstatuscode, dass eine URL dauerhaft an einen anderen Ort verschoben wurde. Standardmäßig folgt wget Weiterleitungen. Sie können jedoch die Option –max-redirect verwenden, um festzulegen, was wget tut, wenn eine 301-Antwort auftritt. Sie können es beispielsweise auf 0 setzen, um wget anzuweisen, keinen Weiterleitungen zu folgen.

[######@fedora ~]$ wget --max-redirect 0 https://fosslinux.com
--2021-11-10 16:55:54-- https://fosslinux.com/
Resolving fosslinux.com (fosslinux.com)... 67.205.134.74, 2604:a880:400:d0::4bfe:a001
Connecting to fosslinux.com (fosslinux.com)|67.205.134.74|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.fosslinux.com/ [following]
0 redirections exceeded.

Speichern der ausführlichen wget-Ausgabe in einer Protokolldatei

Standardmäßig zeigt wget eine ausführliche Ausgabe an das Linux-Terminal an. Sie können jedoch die Option -o verwenden, um alle Ausgabemeldungen in einer bestimmten Protokolldatei zu protokollieren.

$ wget -o foofoo_log.txt fosslinux.com

Der obige wget-Befehl speichert die ausführliche Ausgabe in der Datei „foofoo_log.txt“.

Wget-Befehl als Webspider ausführen

Sie können den Befehl wget mit der Option –spider als Webspider fungieren lassen. Im Wesentlichen lädt es keine Webseiten herunter, sondern prüft nur, ob sie vorhanden sind. Außerdem werden fehlerhafte URLs gemeldet.

$ wget -r --spider fosslinux.com

Wget-Befehl im Hintergrund ausführen

Sie können die Option -b / –background verwenden, um den wget-Prozess im Hintergrund auszuführen. Dies ist wichtig, wenn Sie große Dateien herunterladen, deren Fertigstellung länger dauert.

$ wget -b fosslinux.com/latest.tar.gz

Standardmäßig wird die Ausgabe des wget-Prozesses auf „wget-log“ umgeleitet. Sie können jedoch mit der Option -o eine andere Protokolldatei angeben.

Um den wget-Prozess zu überwachen, verwenden Sie den tail-Befehl.

$ tail -f wget-log

Wget im Debug-Modus ausführen

Wenn Sie wget im Debug-Modus ausführen, enthält die Ausgabe Remoteserverinformationen wie wget-Anforderungsheader und Antwortheader. Anforderungs- und Antwortheader sind für Systemadministratoren und Webentwickler unerlässlich.

$ wget --debug fosslinux.com

Ändern des User-Agents mit dem wget-Befehl

Sie können den standardmäßigen User Agent mit der Option –user-agent ändern. Beispielsweise können Sie „Mozilla/4.0“ als wget User-Agent verwenden, um fosslinux.com mit dem folgenden Befehl abzurufen.

$ wget --user-agent='Mozilla/4.0' fosslinux.com

Erfahren Sie mehr Tipps und Tricks zu wget auf den offiziellen wget-Handbuchseiten.

Abschluss

Der Linux-Befehl wget bietet eine effiziente Möglichkeit, Daten aus dem Internet abzurufen und herunterzuladen, ohne einen Browser zu verwenden. Genau wie der vielseitige Curl-Befehl kann wget jedes komplexe Download-Szenario wie große Dateidownloads, nicht interaktive Downloads und mehrere Dateidownloads handhaben.


Linux
  1. 7 praktische Tricks zur Verwendung des Linux-wget-Befehls

  2. Tipps und Tricks zur Verwendung von CUPS zum Drucken unter Linux

  3. Tipps und Tricks zu Linux-Umgebungsvariablen

  4. 5 Wget-Befehlsbeispiele zum Herunterladen von Dateien unter Linux.

  5. Linux .htaccess Tipps und Tricks

So laden Sie Dateien mit dem Wget-Befehl unter Linux herunter

Tipps und Tricks zur Verwendung von Strg+Z in Ubuntu Linux

19 Nützliche Tipps und Tricks für die Linux-Befehlszeile

10 coole Debian-Tipps und Tricks

Tipps und Tricks zur Netstat-Befehlszeile

So laden Sie Dateien in Rocky Linux 8 über die Befehlszeile mit wget herunter