10 wget-Befehlsbeispiele zur Fehlerbehebung

Eines der häufig verwendeten Dienstprogramme von sysadmin ist wget. Dies kann bei der Fehlerbehebung im Internet sehr praktisch sein.


Was ist wget Befehl?

Der Befehl wget ist ein beliebtes Unix / Linux-Befehlszeilenprogramm zum Abrufen von Inhalten aus dem Web. Es ist kostenlos und bietet eine nicht interaktive Möglichkeit, Dateien aus dem Internet herunterzuladen. Der Befehl wget unterstützt sofort die Protokolle HTTPS, HTTP und FTP. Darüber hinaus können Sie damit auch HTTP-Proxys verwenden.

Wie es Ihnen bei der Fehlerbehebung hilft?

Es gibt viele Wege.

Als Systemadministrator arbeiten Sie die meiste Zeit an einem Terminal. Bei der Behebung von Problemen mit Webanwendungen möchten Sie möglicherweise nicht die gesamte Seite, sondern nur die Konnektivität überprüfen. Oder Sie möchten Intranet-Websites überprüfen. Oder Sie möchten eine bestimmte Seite herunterladen, um den Inhalt zu überprüfen.

wget ist nicht interaktiv, dh Sie können es im Hintergrund ausführen, auch wenn Sie abgemeldet sind. Es kann viele Fälle geben, in denen es wichtig ist, die Verbindung zum System zu trennen, selbst wenn Sie Dateien aus dem Web abrufen. Im Hintergrund wird das Wget ausgeführt und der zugewiesene Job beendet.

Es kann auch verwendet werden, um die gesamte Website auf Ihren lokalen Computern abzurufen. Es kann Links in folgen XHTML und HTML Seiten, um eine lokale Version zu erstellen. Dazu muss die Seite rekursiv heruntergeladen werden. Dies ist sehr nützlich, da Sie damit wichtige Seiten oder Websites für die Offline-Anzeige herunterladen können.

Lassen Sie uns sie in Aktion sehen. Die Syntax des wget ist wie folgt.

wget [Option] [URL]

Laden Sie eine Webseite herunter

Versuchen wir, eine Seite herunterzuladen. Beispiel: github.com

wget github.com

Wenn die Konnektivität in Ordnung ist, wird die Homepage heruntergeladen und die Ausgabe wie folgt angezeigt.

[E-Mail geschützt]: ~ # wget github.com
URL aufgrund einer HSTS-Richtlinie in HTTPS umgewandelt
–2020-02-23 10: 45: 52– https://github.com/
Auflösen von github.com (github.com) … 140.82.118.3
Verbindung zu github.com (github.com) herstellen | 140.82.118.3 |: 443 … verbunden.
HTTP-Anfrage gesendet und wartet auf Antwort … 200 OK
Länge: nicht angegeben [text / html]
Speichern unter: “index.html”

index.html [ <=> ] 131,96 K -, – KB / s in 0,04 s

2020-02-23 10:45:52 (2,89 MB / s) – “index.html” gespeichert [135126]

[E-Mail geschützt]: ~ #

Laden Sie mehrere Dateien herunter

Praktisch, wenn Sie mehrere Dateien gleichzeitig herunterladen müssen. Dies kann Ihnen eine Vorstellung davon geben, wie Sie das Herunterladen von Dateien über einige Skripte automatisieren können.

Versuchen wir, Python 3.8.1- und 3.5.1-Dateien herunterzuladen.

wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz https://www.python.org/ftp/python/3.5.1/Python-3.5.1. tgz

Wie Sie sich vorstellen können, lautet die Syntax wie folgt.

wget URL1 URL2 URL3

Sie müssen nur sicherstellen, dass zwischen den URLs Platz bleibt.

Begrenzen Sie die Download-Geschwindigkeit

Dies ist hilfreich, wenn Sie überprüfen möchten, wie viel Zeit Ihre Datei zum Herunterladen mit unterschiedlicher Bandbreite benötigt.

Mit der Option –limit-rate können Sie die Download-Geschwindigkeit begrenzen.

Hier ist die Ausgabe des Herunterladens der Nodejs-Datei.

[E-Mail geschützt]: ~ # wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
–2020-02-23 10: 59: 58– https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Auflösen von nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Verbindung zu nodejs.org (nodejs.org) herstellen | 104.20.23.46 |: 443 … verbunden.
HTTP-Anfrage gesendet und wartet auf Antwort … 200 OK
Länge: 14591852 (14 M) [Anwendung / x-xz]
Speichern unter: “node-v12.16.1-linux-x64.tar.xz”

node-v12.16.1-linux-x64.tar.xz 100% [================================== ================================================== =======>] 13,92 M -, – KB / s in 0,05 s

2020-02-23 10:59:58 (272 MB / s) – “node-v12.16.1-linux-x64.tar.xz” gespeichert [14591852/14591852]

Das Herunterladen von 13,92 MB-Dateien dauerte 0,05 Sekunden. Versuchen wir nun, die Geschwindigkeit auf 500 K zu begrenzen.

[E-Mail geschützt]: ~ # wget –limit-rate = 500k https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
–2020-02-23 11: 00: 18– https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Auflösen von nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Verbindung zu nodejs.org (nodejs.org) herstellen | 104.20.23.46 |: 443 … verbunden.
HTTP-Anfrage gesendet und wartet auf Antwort … 200 OK
Länge: 14591852 (14 M) [Anwendung / x-xz]
Speichern unter: “node-v12.16.1-linux-x64.tar.xz.1”

node-v12.16.1-linux-x64.tar.xz.1 100% [================================ ================================================== =========>] 13,92 M 501 KB / s in 28 s

2020-02-23 11:00:46 (500 KB / s) – “node-v12.16.1-linux-x64.tar.xz.1” gespeichert [14591852/14591852]

Das Reduzieren der Bandbreite dauerte länger – 28 Sekunden. Stellen Sie sich vor, Ihre Benutzer beschweren sich über langsamen Download und Sie wissen, dass ihre Netzwerkbandbreite gering ist. Sie können schnell versuchen –limit-rate, um das Problem zu simulieren.

Im Hintergrund herunterladen

Das Herunterladen großer Dateien kann einige Zeit oder das obige Beispiel dauern, in dem Sie auch das Ratenlimit festlegen möchten. Dies wird erwartet, aber was ist, wenn Sie nicht auf Ihr Terminal starren möchten??

Nun, Sie können das Argument -b verwenden, um das Wget im Hintergrund zu starten.

[E-Mail geschützt]: ~ # wget -b https://slack.com
Fortsetzung im Hintergrund, Seite 25430.
Die Ausgabe wird in “wget-log.1” geschrieben..
[E-Mail geschützt]: ~ #

Zertifikatfehler ignorieren

Dies ist praktisch, wenn Sie Intranet-Webanwendungen überprüfen müssen, die nicht über das richtige Zertifikat verfügen. Standardmäßig gibt wget einen Fehler aus, wenn ein Zertifikat ungültig ist.

[E-Mail geschützt]: ~ # wget https://expired.badssl.com/
–2020-02-23 11: 24: 59– https://expired.badssl.com/
Auflösen von expired.badssl.com (expired.badssl.com) … 104.154.89.105
Verbindung zu expired.badssl.com (expired.badssl.com) herstellen | 104.154.89.105 |: 443 … verbunden.
FEHLER: Das Zertifikat von expired.badssl.com, ausgestellt von “CN = COMODO RSA-Domänenvalidierung, sichere Server-CA, O = COMODO CA Limited, L = Salford, ST = Greater Manchester, C = GB”, kann nicht überprüft werden:
Das ausgestellte Zertifikat ist abgelaufen.
Um eine unsichere Verbindung zu expired.badssl.com herzustellen, verwenden Sie “–no-check-certificate”..

Das obige Beispiel bezieht sich auf die URL, unter der das Zertifikat abgelaufen ist. Wie Sie sehen, wurde die Verwendung von –no-check-certificate vorgeschlagen, wodurch jegliche Zertifikatsüberprüfung ignoriert wird.

[E-Mail geschützt]: ~ # wget https://untrusted-root.badssl.com/ –no-check-certificate
–2020-02-23 11: 33: 45– https://untrusted-root.badssl.com/
Auflösen von untrusted-root.badssl.com (untrusted-root.badssl.com) … 104.154.89.105
Verbindung zu untrusted-root.badssl.com (untrusted-root.badssl.com) herstellen | 104.154.89.105 |: 443 … verbunden.
WARNUNG: Das Zertifikat von untrusted-root.badssl.com, ausgestellt von “CN = BadSSL Untrusted Root Certificate Authority, O = BadSSL, L = San Francisco, ST = Kalifornien, C = US”, kann nicht überprüft werden:
Selbstsigniertes Zertifikat gefunden.
HTTP-Anfrage gesendet und wartet auf Antwort … 200 OK
Länge: 600 [Text / HTML]
Speichern unter: “index.html.6”

index.html.6 100% [================================================== ================================================>] 600 –.- KB / s in 0s

2020-02-23 11:33:45 (122 MB / s) – “index.html.6” gespeichert [600/600]

[E-Mail geschützt]: ~ #

Cool, nicht wahr??

HTTP-Antwortheader

Siehe den HTTP-Antwortheader einer bestimmten Site auf dem Terminal.

Wenn Sie -S verwenden, wird die Kopfzeile gedruckt, wie Sie unten für sehen können Coursera.

[E-Mail geschützt]: ~ # wget https://www.coursera.org -S
–2020-02-23 11: 47: 01– https://www.coursera.org/
Auflösen von www.coursera.org (www.coursera.org) … 13.224.241.48, 13.224.241.124, 13.224.241.82, …
Verbindung zu www.coursera.org (www.coursera.org) herstellen | 13.224.241.48 |: 443 … verbunden.
HTTP-Anfrage gesendet und wartet auf Antwort…
HTTP / 1.1 200 OK
Inhaltstyp: Text / HTML
Inhaltslänge: 511551
Verbindung: am Leben bleiben
Cache-Kontrolle: privat, kein Cache, kein Speicher, muss erneut validiert werden, maximales Alter = 0
Datum: So, 23. Februar 2020 11:47:01 GMT
etag: W /"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
Server: Gesandter
Set-Cookie: CSRF3-Token = 1583322421.s1b4QL6OXSUGHnRI; Maximales Alter = 864000; Läuft ab = Mi, 04. März 2020 11:47:02 GMT; Pfad = /; Domain = .coursera.org
Set-Cookie: __204u = 9205355775-1582458421174; Maximales Alter = 31536000; Läuft ab = Mo, 22. Februar 2021 11:47:02 GMT; Pfad = /; Domain = .coursera.org
Strikte Transportsicherheit: maximales Alter = 31536000; includeSubDomains; Vorspannung
X-Content-Type-Optionen: nosniff
x-coursera-render-mode: html
x-coursera-render-version: v2
X-Coursera-Anforderungs-ID: NCnPPlYyEeqfcxIHPk5Gqw
X-Coursera-Trace-Id-Hex: a5ef7028d77ae8f8
x-Gesandte-Upstream-Service-Zeit: 1090
X-Frame-Optionen: SAMEORIGIN
x-powered-by: Express
X-XSS-Schutz: 1; mode = block
X-Cache: Miss von der Cloudfront
Via: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: LHR62-C3
X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ ==
Länge: 511551 (500 KB) [Text / HTML]

Bearbeiten Sie den User-Agent

Möglicherweise möchten Sie eine Site mithilfe eines benutzerdefinierten Benutzeragenten verbinden. Oder der Benutzeragent eines bestimmten Browsers. Dies ist durch Angabe von –user-agent möglich. Das folgende Beispiel gilt für den Benutzeragenten als MyCustomUserAgent.

[E-Mail geschützt]: ~ # wget https://gf.dev –user-agent ="MyCustomUserAgent"

Host-Header

Wenn sich eine Anwendung noch in der Entwicklung befindet, verfügen Sie möglicherweise nicht über eine geeignete URL, um sie zu testen. Möglicherweise möchten Sie auch eine einzelne HTTP-Instanz mithilfe von IP testen, müssen jedoch den Host-Header angeben, damit die Anwendung ordnungsgemäß funktioniert. In dieser Situation wäre –header nützlich.

Nehmen wir ein Beispiel für das Testen von http://10.10.10.1 mit dem Host-Header als application.com

wget –header ="Host: application.com" http://10.10.10.1

Nicht nur Host, sondern Sie können jeden beliebigen Header einfügen.

Stellen Sie eine Verbindung mit Proxy her

Wenn Sie in einer DMZ-Umgebung arbeiten, haben Sie möglicherweise keinen Zugriff auf Internetseiten. Sie können jedoch den Proxy nutzen, um eine Verbindung herzustellen.

wget -e use_proxy = yes http_proxy = $ PROXYHOST: PORT http://externalsite.com

Vergessen Sie nicht, die Variable $ PROXYHOST: PORT mit den tatsächlichen Variablen zu aktualisieren.

Stellen Sie eine Verbindung mit einem bestimmten TLS-Protokoll her

Normalerweise würde ich empfehlen, OpenSSL zum Testen des TLS-Protokolls zu verwenden. Sie können aber auch wget verwenden.

wget –secure-protocol = TLSv1_2 https://example.com

Das oben Gesagte zwingt wget, eine Verbindung über TLS 1.2 herzustellen.

Fazit

Wenn Sie den erforderlichen Befehl kennen, können Sie bei der Arbeit helfen. Ich hoffe, das Obige gibt Ihnen eine Vorstellung davon, was Sie mit wget machen können.

STICHWORTE:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map