Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

10 Beispiele für wget-Befehle, die Ihnen bei der Fehlersuche helfen – wget Test

wget Befehlsbeispiele
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Eines der häufig verwendeten Dienstprogramme von sysadmin ist wget. Es kann sehr praktisch sein, wenn Sie mit dem Internet zu tun haben Fehlersuche.

Was ist der Befehl wget?

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 hilft Ihnen wget bei der Fehlerbehebung?

Es gibt viele Wege.

Als ein Sysadmin, arbeiten Sie die meiste Zeit an einem Terminal, und wenn Sie Probleme mit Webanwendungen beheben, 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 die wget wird ausgeführt und beendet ihren zugewiesenen Job.

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]

Download a webpage

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.

root@trends:~# wget github.com
URL transformed to HTTPS due to an HSTS policy
--2020-02-23 10:45:52--  https://github.com/
Resolving github.com (github.com)... 140.82.118.3
Connecting to github.com (github.com)|140.82.118.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                                       [ <=>                                                                                        ] 131.96K  --.-KB/s    in 0.04s   

2020-02-23 10:45:52 (2.89 MB/s) - ‘index.html’ saved [135126]

root@trends:~#

Download multiple files

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.

Limit download speed

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

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

Hier ist die Ausgabe des Herunterladens der Nodejs-Datei.

root@trends:~# 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
Resolving nodejs.org (nodejs.org)... 104.20.23.46, 104.20.22.46, 2606:4700:10::6814:162e, ...
Connecting to nodejs.org (nodejs.org)|104.20.23.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14591852 (14M) [application/x-xz]
Saving to: ‘node-v12.16.1-linux-x64.tar.xz’

node-v12.16.1-linux-x64.tar.xz               100%[===========================================================================================>]  13.92M  --.-KB/s    in 0.05s   

2020-02-23 10:59:58 (272 MB/s) - ‘node-v12.16.1-linux-x64.tar.xz’ saved [14591852/14591852]

Das Herunterladen von 0.05 MB-Dateien dauerte 13.92 Sekunden. Versuchen wir nun, die Geschwindigkeit auf 500K zu begrenzen.

root@trends:~# 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
Resolving nodejs.org (nodejs.org)... 104.20.23.46, 104.20.22.46, 2606:4700:10::6814:162e, ...
Connecting to nodejs.org (nodejs.org)|104.20.23.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14591852 (14M) [application/x-xz]
Saving to: ‘node-v12.16.1-linux-x64.tar.xz.1’

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

2020-02-23 11:00:46 (500 KB/s) - ‘node-v12.16.1-linux-x64.tar.xz.1’ saved [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 es schnell versuchen --limit-rate um das Problem zu simulieren.

Download in the background

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 verwenden -b Argument, um das Wget im Hintergrund zu starten.

root@trends:~# wget -b https://slack.com
Continuing in background, pid 25430.
Output will be written to ‘wget-log.1’.
root@trends:~#

Ignore Certificate Error

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.

root@trends:~# wget https://expired.badssl.com/
--2020-02-23 11:24:59--  https://expired.badssl.com/
Resolving expired.badssl.com (expired.badssl.com)... 104.154.89.105
Connecting to expired.badssl.com (expired.badssl.com)|104.154.89.105|:443... connected.
ERROR: cannot verify expired.badssl.com's certificate, issued by ‘CN=COMODO RSA Domain Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB’:
  Issued certificate has expired.
To connect to expired.badssl.com insecurely, use `--no-check-certificate'.

Das obige Beispiel bezieht sich auf die URL, unter der das Zertifikat abgelaufen ist. Wie Sie sehen können, hat es vorgeschlagen, zu verwenden --no-check-certificate Dadurch wird jede Zertifikatsüberprüfung ignoriert.

root@trends:~# wget https://untrusted-root.badssl.com/ --no-check-certificate
--2020-02-23 11:33:45--  https://untrusted-root.badssl.com/
Resolving untrusted-root.badssl.com (untrusted-root.badssl.com)... 104.154.89.105
Connecting to untrusted-root.badssl.com (untrusted-root.badssl.com)|104.154.89.105|:443... connected.
WARNING: cannot verify untrusted-root.badssl.com's certificate, issued by ‘CN=BadSSL Untrusted Root Certificate Authority,O=BadSSL,L=San Francisco,ST=California,C=US’:
  Self-signed certificate encountered.
HTTP request sent, awaiting response... 200 OK
Length: 600 [text/html]
Saving to: ‘index.html.6’

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

2020-02-23 11:33:45 (122 MB/s) - ‘index.html.6’ saved [600/600]

root@trends:~#

Cool, nicht wahr?

HTTP Response Header

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

Die -S druckt die Kopfzeile, wie Sie unten für sehen können Coursera.

root@trends:~# wget https://www.coursera.org -S
--2020-02-23 11:47:01--  https://www.coursera.org/
Resolving www.coursera.org (www.coursera.org)... 13.224.241.48, 13.224.241.124, 13.224.241.82, ...
Connecting to www.coursera.org (www.coursera.org)|13.224.241.48|:443... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Content-Type: text/html
  Content-Length: 511551
  Connection: keep-alive
  Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0
  Date: Sun, 23 Feb 2020 11:47:01 GMT
  etag: W/"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
  Server: envoy
  Set-Cookie: CSRF3-Token=1583322421.s1b4QL6OXSUGHnRI; Max-Age=864000; Expires=Wed, 04 Mar 2020 11:47:02 GMT; Path=/; Domain=.coursera.org
  Set-Cookie: __204u=9205355775-1582458421174; Max-Age=31536000; Expires=Mon, 22 Feb 2021 11:47:02 GMT; Path=/; Domain=.coursera.org
  Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  X-Content-Type-Options: nosniff
  x-coursera-render-mode: html
  x-coursera-render-version: v2
  X-Coursera-Request-Id: NCnPPlYyEeqfcxIHPk5Gqw
  X-Coursera-Trace-Id-Hex: a5ef7028d77ae8f8
  x-envoy-upstream-service-time: 1090
  X-Frame-Options: SAMEORIGIN
  x-powered-by: Express
  X-XSS-Protection: 1; mode=block
  X-Cache: Miss from cloudfront
  Via: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
  X-Amz-Cf-Pop: LHR62-C3
  X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ==
Length: 511551 (500K) [text/html]

Manipulate the User-Agent

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

root@trends:~# 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 eine einzelne HTTP-Instanz mithilfe von IP testen, müssen jedoch den Host-Header angeben, damit die Anwendung ordnungsgemäß funktioniert. In dieser Situation, --header wäre 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.

Connect using Proxy

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.

Connect using a specific TLS protocol

Normalerweise würde ich die Verwendung empfehlen OpenSSL um das TLS-Protokoll zu testen. 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 damit machen können wget.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu Linux
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder