10 wget Command-voorbeelden om u te helpen bij het oplossen van problemen

Een van de meest gebruikte hulpprogramma’s van sysadmin is wget. Het kan erg handig zijn bij het oplossen van webgerelateerde problemen.


Wat is een wget-commando?

wget-opdracht is een populair opdrachtregelprogramma voor Unix / Linux voor het ophalen van de inhoud van internet. Het is gratis te gebruiken en biedt een niet-interactieve manier om bestanden van internet te downloaden. De wget-opdracht ondersteunt standaard de HTTPS-, HTTP- en FTP-protocollen. Bovendien kunt u er ook HTTP-proxy’s mee gebruiken.

Hoe het u helpt bij het oplossen van problemen?

Er zijn veel manieren.

Als sysadmin werk je meestal aan een terminal en bij het oplossen van problemen met webapplicaties wil je misschien niet de hele pagina controleren, maar alleen de connectiviteit. Of u wilt intranetwebsites verifiëren. Of u wilt een bepaalde pagina downloaden om de inhoud te verifiëren.

wget is niet-interactief, wat betekent dat je het op de achtergrond kunt uitvoeren, zelfs als je bent uitgelogd. Er kunnen veel gevallen zijn waarin het essentieel is dat u de verbinding met het systeem verbreekt, zelfs wanneer u bestanden ophaalt van internet. Op de achtergrond zal de wget hun toegewezen taak uitvoeren en afmaken.

Het kan ook worden gebruikt om de hele website op uw lokale machines te krijgen. Het kan links volgen XHTML en HTML pagina’s om een ​​lokale versie te maken. Om dit te doen, moet het de pagina recursief downloaden. Dit is erg handig omdat u het kunt gebruiken om belangrijke pagina’s of sites te downloaden voor offline weergave.

Laten we ze in actie zien. De syntaxis van de wget is als volgt.

wget [optie] [URL]

Download een webpagina

Laten we proberen een pagina te downloaden. Bijvoorbeeld: github.com

wget github.com

Als de connectiviteit goed is, wordt de startpagina gedownload en wordt de uitvoer weergegeven zoals hieronder.

[email beveiligd]: ~ # wget github.com
URL getransformeerd naar HTTPS vanwege een HSTS-beleid
–2020-02-23 10: 45: 52– https://github.com/
Het oplossen van github.com (github.com) … 140.82.118.3
Verbinding maken met github.com (github.com) | 140.82.118.3 |: 443 … verbonden.
HTTP-verzoek verzonden, in afwachting van antwoord … 200 OK
Lengte: niet gespecificeerd [text / html]
Opslaan in: ‘index.html’

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

2020-02-23 10:45:52 (2,89 MB / s) – ‘index.html’ opgeslagen [135126]

[email beveiligd]: ~ #

Download meerdere bestanden

Handig wanneer je meerdere bestanden tegelijk moet downloaden. Dit kan u een idee geven over het automatiseren van het downloaden van bestanden via sommige scripts.

Laten we proberen Python 3.8.1- en 3.5.1-bestanden te downloaden.

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

Dus, zoals je kunt raden, is de syntaxis zoals hieronder.

wget URL1 URL2 URL3

Je moet er gewoon voor zorgen dat er ruimte wordt gegeven tussen URL’s.

Beperk de downloadsnelheid

Het zou handig zijn als u wilt controleren hoeveel tijd uw bestand nodig heeft om met verschillende bandbreedte te downloaden.

Met de optie –limit-rate kunt u de downloadsnelheid beperken.

Hier is de output van het downloaden van het Nodejs-bestand.

[email beveiligd]: ~ # 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
Nodejs.org (nodejs.org) oplossen … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Verbinden met nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … verbonden.
HTTP-verzoek verzonden, in afwachting van antwoord … 200 OK
Lengte: 14591852 (14M) [applicatie / x-xz]
Opslaan in: ‘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’ opgeslagen [14591852/14591852]

Het downloaden van 13,92 MB-bestanden duurde 0,05 seconden. Laten we nu proberen de snelheid te beperken tot 500K.

[email beveiligd]: ~ # 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
Nodejs.org (nodejs.org) oplossen … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Verbinden met nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … verbonden.
HTTP-verzoek verzonden, in afwachting van antwoord … 200 OK
Lengte: 14591852 (14M) [applicatie / x-xz]
Opslaan in: ‘node-v12.16.1-linux-x64.tar.xz.1’

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

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

Het verminderen van de bandbreedte duurde langer om te downloaden – 28 seconden. Stel je voor, je gebruikers klagen over een trage download en je weet dat hun netwerkbandbreedte laag is. U kunt snel –limit-rate proberen om het probleem te simuleren.

Download op de achtergrond

Het downloaden van grote bestanden kan even duren of het bovenstaande voorbeeld waarbij u ook de snelheidslimiet wilt instellen. Dit wordt verwacht, maar wat als u niet naar uw terminal wilt staren?

Welnu, u kunt het argument -b gebruiken om de wget op de achtergrond te starten.

[email beveiligd]: ~ # wget -b https://slack.com
Vervolg op achtergrond, pid 25430.
De uitvoer wordt naar ‘wget-log.1’ geschreven.
[email beveiligd]: ~ #

Certificaatfout negeren

Dit is handig wanneer u intranetwebtoepassingen moet controleren die niet over het juiste certificaat beschikken. Standaard genereert wget een foutmelding wanneer een certificaat niet geldig is.

[email beveiligd]: ~ # wget https://expired.badssl.com/
–2020-02-23 11:24:59 – https://expired.badssl.com/
Het oplossen van expired.badssl.com (expired.badssl.com) … 104.154.89.105
Verbinding maken met expired.badssl.com (expired.badssl.com) | 104.154.89.105 |: 443 … verbonden.
FOUT: kan het certificaat van expired.badssl.com niet verifiëren, uitgegeven door ‘CN = COMODO RSA Domain Validation Secure Server CA, O = COMODO CA Limited, L = Salford, ST = Greater Manchester, C = GB’:
Afgegeven certificaat is verlopen.
Gebruik `–no-check-certificate ‘om onveilig verbinding te maken met expired.badssl.com.

Het bovenstaande voorbeeld is voor de URL waar cert is verlopen. Zoals u kunt zien, heeft het voorgesteld om –no-check-certificate te gebruiken, dat elke validatie van certificaten negeert.

[email beveiligd]: ~ # wget https://untrusted-root.badssl.com/ –no-check-certificate
–2020-02-23 11:33:45 – https://untrusted-root.badssl.com/
Het oplossen van untrusted-root.badssl.com (untrusted-root.badssl.com) … 104.154.89.105
Verbinding maken met untrusted-root.badssl.com (untrusted-root.badssl.com) | 104.154.89.105 |: 443 … verbonden.
WAARSCHUWING: kan het certificaat van untrusted-root.badssl.com niet verifiëren, uitgegeven door ‘CN = BadSSL Untrusted Root Certificate Authority, O = BadSSL, L = San Francisco, ST = California, C = US’:
Zelfondertekend certificaat aangetroffen.
HTTP-verzoek verzonden, in afwachting van antwoord … 200 OK
Lengte: 600 [text / html]
Opslaan in: ‘index.html.6’

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

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

[email beveiligd]: ~ #

Cool, is het niet?

HTTP-antwoordkop

Zie de HTTP-antwoordkop van een bepaalde site op de terminal.

Als u -S gebruikt, wordt de koptekst afgedrukt, zoals u hieronder kunt zien Coursera.

[email beveiligd]: ~ # 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, …
Verbinding maken met www.coursera.org (www.coursera.org) | 13.224.241.48 |: 443 … verbonden.
HTTP-verzoek verzonden, in afwachting van antwoord…
HTTP / 1.1 200 OK
Inhoudstype: tekst / html
Inhoud lengte: 511551
Verbinding: levend houden
Cache-Control: privé, no-cache, no-store, must-revalidate, max-age = 0
Datum: zo, 23 februari 2020 11:47:01 GMT
etag: W /"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
Server: gezant
Set-Cookie: CSRF3-Token = 1583322421.s1b4QL6OXSUGHnRI; Max-leeftijd = 864000; Verloopt op: wo 04 mrt 2020 11:47:02 GMT; Pad = /; Domein = .coursera.org
Set-Cookie: __204u = 9205355775-1582458421174; Max-leeftijd = 31536000; Verloopt op: ma 22 februari 2021 11:47:02 GMT; Pad = /; Domein = .coursera.org
Strict-Transport-Security: max-age = 31536000; includeSubDomains; voorladen
X-Content-Type-opties: nosniff
x-coursera-render-modus: html
x-coursera-render-versie: v2
X-Coursera-Request-Id: NCnPPlYyEeqfcxIHPk5Gqw
X-Coursera-Trace-Id-Hex: a5ef7028d77ae8f8
x-gezant-upstream-servicetijd: 1090
X-Frame-opties: SAMEORIGIN
x-powered: Express
X-XSS-bescherming: 1; mode = blok
X-Cache: mis van cloudfront
Via: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: LHR62-C3
X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ ==
Lengte: 511551 (500K) [text / html]

Manipuleer de User-Agent

Er kan een situatie zijn waarin u een site wilt verbinden met een aangepaste user-agent. Of de user-agent van een specifieke browser. Dit is te doen door –user-agent op te geven. Het onderstaande voorbeeld is voor de user-agent als MyCustomUserAgent.

[email beveiligd]: ~ # wget https://gf.dev –user-agent ="MyCustomUserAgent"

Hostkop

Wanneer een applicatie nog in ontwikkeling is, heeft u mogelijk niet de juiste URL om deze te testen. Of misschien wilt u een individuele HTTP-instantie testen met IP, maar u moet de hostkop opgeven om de toepassing correct te laten werken. In deze situatie zou –header nuttig zijn.

Laten we een voorbeeld nemen van het testen van http://10.10.10.1 met de hostkop als application.com

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

Niet alleen host, maar u kunt elke gewenste koptekst injecteren.

Maak verbinding via Proxy

Als u in een DMZ-omgeving werkt, heeft u mogelijk geen toegang tot internetsites. Maar u kunt profiteren van proxy om verbinding te maken.

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

Vergeet niet de variabele $ PROXYHOST: PORT bij te werken met de werkelijke.

Maak verbinding via een specifiek TLS-protocol

Meestal raad ik aan OpenSSL te gebruiken om het TLS-protocol te testen. Maar u kunt ook wget gebruiken.

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

Het bovenstaande zal wget dwingen om verbinding te maken via TLS 1.2.

Conclusie

Het kennen van de benodigde opdracht kan u op het werk helpen. Ik hoop dat het bovenstaande je een idee geeft van wat je kunt doen met wget.

TAGS:

  • 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