10 exemple de comenzi wget pentru a vă ajuta să depanați – wget Test

Unul dintre utilitarele utilizate frecvent de administratorul de sistem este wget. Poate fi foarte util în timpul depanării legate de web.

Ce este comanda wget?

Comanda wget este un utilitar popular de linie de comandă Unix/Linux pentru preluarea conținutului de pe web. Este gratuit de utilizat și oferă o modalitate non-interactivă de a descărca fișiere de pe web. Comanda wget acceptă protocoalele HTTPS, HTTP și FTP. Mai mult, puteți utiliza și proxy HTTP cu acesta.

Cum vă ajută wget să depanați?

Sunt multe cai.

În calitate de administrator de sistem, de cele mai multe ori, veți lucra la un terminal și, atunci când rezolvați probleme legate de aplicațiile web, este posibil să nu doriți să verificați întreaga pagină, ci doar conectivitatea. Sau doriți să verificați site-urile intranet. Sau doriți să descărcați o anumită pagină pentru a verifica conținutul.

wget nu este interactiv, ceea ce înseamnă că îl puteți rula în fundal chiar și atunci când sunteți deconectat. Pot exista multe situații în care este esențial să vă deconectați de la sistem chiar și atunci când faceți recuperarea fișierelor de pe web. În fundal, wget-ul va rula și va termina lucrarea atribuită.

De asemenea, poate fi folosit pentru a obține întregul site web pe computerele dvs. locale. Poate urma link-uri din paginile XHTML și HTML pentru a crea o versiune locală. Pentru a face acest lucru, trebuie să descarce pagina în mod recursiv. Acest lucru este foarte util, deoarece îl puteți folosi pentru a descărca pagini sau site-uri importante pentru vizualizare offline.

  Tomcat Load Balancer cu Apache folosind Mod Proxy și Session Sticky

Să-i vedem în acțiune. Sintaxa wget-ului este ca mai jos.

wget [option] [URL]

Descărcați o pagină web

Să încercăm să descarcăm o pagină. Ex: github.com

wget github.com

Dacă conectivitatea este bună, atunci va descărca pagina de pornire și va afișa rezultatul ca mai jos.

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

Descărcați mai multe fișiere

La îndemână atunci când trebuie să descărcați mai multe fișiere simultan. Acest lucru vă poate oferi o idee despre automatizarea descărcării fișierelor prin intermediul unor scripturi.

Să încercăm să descarcăm fișierele Python 3.8.1 și 3.5.1.

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

Deci, după cum puteți ghici, sintaxa este ca mai jos.

wget URL1 URL2 URL3

Trebuie doar să vă asigurați că oferiți spațiu între adrese URL.

Limitați viteza de descărcare

Ar fi util atunci când doriți să verificați cât timp durează descărcarea fișierului dvs. la o lățime de bandă diferită.

Folosind opțiunea –limit-rate, puteți limita viteza de descărcare.

Iată rezultatul descărcării fișierului Nodejs.

[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]

A durat 0,05 secunde pentru a descărca fișiere de 13,92 MB. Acum, să încercăm să limităm viteza la 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]

Reducerea lățimii de bandă a durat mai mult până la descărcare – 28 de secunde. Imaginează-ți că utilizatorii tăi se plâng de descărcarea lentă și știi că lățimea de bandă a rețelei lor este redusă. Puteți încerca rapid –limit-rate pentru a simula problema.

  Cum să remediați că cursorul dispare în problema Mac în 5 minute [+3 Tools]

Descărcați în fundal

Descărcarea fișierelor mari poate dura timp sau exemplul de mai sus în care doriți să setați și limita de rată. Acest lucru este de așteptat, dar ce se întâmplă dacă nu doriți să vă uitați la terminalul dvs.?

Ei bine, puteți folosi argumentul -b pentru a porni wget în fundal.

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

Ignorați eroarea certificatului

Acest lucru este util atunci când trebuie să verificați aplicațiile web intranet care nu au certificatul adecvat. În mod implicit, wget va afișa o eroare atunci când un certificat nu este valid.

[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'.

Exemplul de mai sus este pentru adresa URL la care certificatul a expirat. După cum puteți vedea, a sugerat utilizarea –no-check-certificate, care va ignora orice validare a certificatului.

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

Cool, nu-i așa?

Vedeți antetul răspunsului HTTP al unui anumit site pe terminal.

Folosind -S va imprima antetul, așa cum puteți vedea mai jos pentru 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]

Manipulați User-Agent

Este posibil să existe o situație în care doriți să conectați un site utilizând un user-agent personalizat. Sau user-agent al browserului specific. Acest lucru este posibil prin specificarea –user-agent. Exemplul de mai jos este pentru agentul utilizator ca MyCustomUserAgent.

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

Când o aplicație este încă în dezvoltare, este posibil să nu aveți o adresă URL adecvată pentru a o testa. Sau, poate doriți să testați o instanță HTTP individuală folosind IP, dar trebuie să furnizați antetul gazdei pentru ca aplicația să funcționeze corect. În această situație, –header ar fi util.

  Cum să copiați și să lipiți pe un Mac

Să luăm un exemplu de testare a http://10.10.10.1 cu antetul gazdei ca application.com

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

Nu doar gazdă, dar puteți injecta orice antet doriți.

Conectați-vă folosind Proxy

Dacă lucrați într-un mediu DMZ, este posibil să nu aveți acces la site-uri de internet. Dar puteți profita de proxy pentru a vă conecta.

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

Nu uitați să actualizați variabila $PROXYHOST:PORT cu cele reale.

Conectați-vă folosind un protocol TLS specific

De obicei, aș recomanda utilizarea OpenSSL pentru a testa protocolul TLS. Dar, puteți folosi și wget.

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

Cele de mai sus vor forța wget să se conecteze prin TLS 1.2.

Concluzie

Cunoașterea comenzii necesare vă poate ajuta la locul de muncă. Sper că cele de mai sus vă oferă o idee despre ce puteți face cu wget.