10 wget-kommandoeksempler for å hjelpe deg med å feilsøke wget-testen

En av de ofte brukte verktøyene av sysadmin er wget. Det kan være veldig nyttig under web-relatert feilsøking.

Hva er wget kommando?

wget-kommandoen er et populært Unix/Linux-kommandolinjeverktøy for å hente innholdet fra nettet. Det er gratis å bruke og gir en ikke-interaktiv måte å laste ned filer fra nettet på. Wget-kommandoen støtter HTTPS-, HTTP- og FTP-protokoller ut av esken. Dessuten kan du også bruke HTTP-proxyer med den.

Hvordan hjelper wget deg med å feilsøke?

Det er mange måter.

Som systemadministrator vil du mesteparten av tiden jobbe på en terminal, og når du feilsøker problemer knyttet til nettapplikasjoner, vil du kanskje ikke sjekke hele siden, men bare tilkoblingen. Eller du vil bekrefte intranettnettsteder. Eller du vil laste ned en bestemt side for å bekrefte innholdet.

wget er ikke-interaktivt, noe som betyr at du kan kjøre det i bakgrunnen selv når du er logget av. Det kan være mange tilfeller der det er viktig for deg å koble fra systemet selv når du gjør filhenting fra nettet. I bakgrunnen vil wget kjøre og fullføre den tildelte jobben.

Den kan også brukes til å få hele nettsiden på dine lokale maskiner. Den kan følge koblinger i XHTML- og HTML-sider for å lage en lokal versjon. For å gjøre det, må den laste ned siden rekursivt. Dette er veldig nyttig siden du kan bruke det til å laste ned viktige sider eller nettsteder for offline visning.

  Fix Warframe-pålogging mislyktes Sjekk informasjonen din

La oss se dem i aksjon. Syntaksen til wget er som nedenfor.

wget [option] [URL]

Last ned en nettside

La oss prøve å laste ned en side. Eks: github.com

wget github.com

Hvis tilkoblingen er bra, vil den laste ned hjemmesiden og vise utdataene som nedenfor.

[email protected]:~# 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]

[email protected]:~#

Last ned flere filer

Praktisk når du må laste ned flere filer samtidig. Dette kan gi deg en idé om automatisering av nedlasting av filer gjennom enkelte skript.

La oss prøve å laste ned Python 3.8.1- og 3.5.1-filer.

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

Så, som du kan gjette, er syntaksen som nedenfor.

wget URL1 URL2 URL3

Du må bare sørge for å gi plass mellom URL-er.

Begrens nedlastingshastigheten

Det ville være nyttig når du vil sjekke hvor lang tid det tar å laste ned filen ved forskjellig båndbredde.

Ved å bruke –limit-rate-alternativet kan du begrense nedlastingshastigheten.

Her er resultatet for nedlasting av Nodejs-filen.

[email protected]:~# 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]

Det tok 0,05 sekunder å laste ned 13,92 MB filer. La oss nå prøve å begrense hastigheten til 500K.

[email protected]:~# 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]

Å redusere båndbredden tok lengre tid å laste ned – 28 sekunder. Tenk deg at brukerne dine klager over treg nedlasting, og du vet at nettverksbåndbredden deres er lav. Du kan raskt prøve –limit-rate for å simulere problemet.

  Slik organiserer du bokmerkene dine med litt albuefett

Last ned i bakgrunnen

Nedlasting av store filer kan ta tid eller eksemplet ovenfor hvor du også vil sette takstgrensen. Dette er forventet, men hva om du ikke vil stirre på terminalen din?

Vel, du kan bruke -b argument for å starte wget i bakgrunnen.

[email protected]:~# wget -b https://slack.com
Continuing in background, pid 25430.
Output will be written to ‘wget-log.1’.
[email protected]:~#

Ignorer sertifikatfeil

Dette er nyttig når du trenger å sjekke intranett-nettapplikasjoner som ikke har riktig sertifikat. Som standard vil wget gi en feilmelding når et sertifikat ikke er gyldig.

[email protected]:~# 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'.

Eksempelet ovenfor er for URL-en der sertifikatet er utløpt. Som du kan se har det foreslått å bruke –no-check-sertifikat som vil ignorere enhver sertifikatvalidering.

[email protected]:~# 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]

[email protected]:~#

Kult, ikke sant?

Se HTTP-svarhodet til et gitt nettsted på terminalen.

Bruk av -S vil skrive ut overskriften, som du kan se nedenfor for Coursera.

[email protected]:~# 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]

Manipuler brukeragenten

Det kan være en situasjon der du vil koble til et nettsted ved hjelp av en tilpasset brukeragent. Eller spesifikk nettlesers brukeragent. Dette kan gjøres ved å spesifisere –user-agent. Eksempelet nedenfor er for brukeragenten som MyCustomUserAgent.

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

Når en applikasjon fortsatt er under utvikling, har du kanskje ikke en riktig URL for å teste den. Eller du vil kanskje teste en individuell HTTP-forekomst ved hjelp av IP, men du må oppgi vertshodet for at programmet skal fungere skikkelig. I denne situasjonen vil –header være nyttig.

  Slik sletter du Plenty of Fish Dating-konto

La oss ta et eksempel på å teste http://10.10.10.1 med vertshode som application.com

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

Ikke bare vert, men du kan injisere hvilken som helst overskrift du vil.

Koble til ved hjelp av proxy

Hvis du jobber i et DMZ-miljø, har du kanskje ikke tilgang til Internett-sider. Men du kan dra nytte av proxy for å koble til.

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

Ikke glem å oppdatere $PROXYHOST:PORT-variabelen med de faktiske.

Koble til ved hjelp av en spesifikk TLS-protokoll

Vanligvis vil jeg anbefale å bruke OpenSSL for å teste TLS-protokollen. Men du kan også bruke wget.

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

Ovennevnte vil tvinge wget til å koble til over TLS 1.2.

Konklusjon

Å kjenne den nødvendige kommandoen kan hjelpe deg på jobben. Jeg håper ovenstående gir deg en ide om hva du kan gjøre med wget.