10 exemple de comandă wget pentru a vă ajuta să depanați

Una dintre utilitățile frecvent utilizate de sysadmin este wget. Poate fi foarte util în timpul depanării legate de web.


Ce este comanda wget?

comanda wget este o utilitate populară pentru linia de comandă Unix / Linux pentru preluarea conținutului de pe web. Este gratuit de utilizat și oferă un mod 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-uri HTTP cu acesta.

Cum vă ajută să depanați?

Sunt multe cai.

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

wget este non-interactiv, ceea ce înseamnă că îl puteți rula pe fundal chiar și atunci când sunteți deconectat. Există multe cazuri în care este esențial să vă deconectați de la sistem chiar și atunci când faceți recuperare de fișiere de pe web. În fundal, wget-ul va rula și va termina lucrarea atribuită.

Poate fi folosit și pentru a obține întregul site web pe mașinile dvs. locale. Poate urmări link-uri în XHTML și HTML pagini pentru a crea o versiune locală. Pentru a face acest lucru, trebuie să descarce pagina recursiv. Acest lucru este foarte util, deoarece îl puteți utiliza pentru a descărca pagini sau site-uri importante pentru vizualizare offline.

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

wget [opțiune] [URL]

Descărcați o pagină web

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

wget github.com

Dacă conectivitatea este în regulă, atunci va descărca pagina principală și va afișa ieșirea ca mai jos.

[Email protected]: ~ # wget github.com
Adresa URL transformată în HTTPS datorită unei politici HSTS
–2020-02-23 10: 45: 52– https://github.com/
Rezolvarea github.com (github.com) … 140.82.118.3
Conectarea la github.com (github.com) | 140.82.118.3 |: 443 … conectat.
Solicitare HTTP trimisă, în așteptarea răspunsului … 200 OK
Lungime: nespecificat [text / html]
Salvarea la: „index.html”

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

2020-02-23 10:45:52 (2,89 MB / s) – „index.html” salvat [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ă descărcăm fișiere 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ă dați spațiu între adresele URL.

Limitați viteza de descărcare

Ar fi util când doriți să verificați cât timp durează fișierul dvs. pentru a descărca la diferite lățimi de bandă.

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
Rezolvarea nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10: 6814: 162e, …
Conectarea la nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … conectat.
Solicitare HTTP trimisă, în așteptarea răspunsului … 200 OK
Lungime: 14591852 (14M) [aplicație / x-xz]
Salvarea în: ‘node-v12.16.1-linux-x64.tar.xz’

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

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

A fost nevoie de 0.05 secunde pentru a descărca fișiere de 13.92 MB. Acum, î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
Rezolvarea nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10: 6814: 162e, …
Conectarea la nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … conectat.
Solicitare HTTP trimisă, în așteptarea răspunsului … 200 OK
Lungime: 14591852 (14M) [aplicație / x-xz]
Salvarea în: ‘node-v12.16.1-linux-x64.tar.xz.1’

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

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

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

Descărcați în fundal

Descărcarea fișierelor mari poate dura timpul sau exemplul de mai sus unde doriți să setați și limita de tarif. Acest lucru este de așteptat, dar dacă nu doriți să vă uitați la terminal?

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

[Email protected]: ~ # wget -b https://slack.com
Continuând în fundal, pid 25430.
Rezultatul va fi scris pe „wget-log.1”.
[Email protected]: ~ #

Ignoră eroarea certificatului

Acest lucru este util atunci când trebuie să verificați aplicațiile web intranet care nu au certificatul corespunzător. În mod implicit, wget va arunca 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/
Rezolvarea expired.badssl.com (expired.badssl.com) … 104.154.89.105
Conectarea la expired.badssl.com (expired.badssl.com) | 104.154.89.105 |: 443 … conectat.
EROARE: nu poate verifica certificatul expired.badssl.com, emis de „CN = COMODO RSA Validation Domain Secure Server CA, O = COMODO CA Limited, L = Salford, ST = Greater Manchester, C = GB”:
Certificatul emis a expirat.
Pentru a vă conecta la expired.badssl.com în mod nesigur, utilizați `–no-check-certificate ‘.

Exemplul de mai sus este pentru adresa URL unde certificatul a expirat. După cum vedeți, a sugerat folosirea –no-check-certificate care va ignora orice validare cert.

[Email protected]: ~ # wget https://untrusted-root.badssl.com/ –no-check-certificate
–2020-02-23 11: 33: 45– https://untrusted-root.badssl.com/
Rezolvare untrusted-root.badssl.com (untrusted-root.badssl.com) … 104.154.89.105
Conectarea la untrusted-root.badssl.com (untrusted-root.badssl.com) | 104.154.89.105 |: 443 … conectat.
AVERTIZARE: nu poate verifica certificatul untrusted-root.badssl.com, eliberat de „CN = BadSSL Autoritatea de certificare rădăcină de încredere, O = BadSSL, L = San Francisco, ST = California, C = SUA”
A fost întâlnit un certificat semnat de sine.
Solicitare HTTP trimisă, în așteptarea răspunsului … 200 OK
Lungime: 600 [text / html]
Salvarea la: „index.html.6”

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

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

[Email protected]: ~ #

Misto, nu-i asa?

Antet de răspuns HTTP

Consultați antetul de răspuns HTTP al unui site dat pe terminal.

Folosind -S se va tipări antetul, după 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/
Rezolvarea www.coursera.org (www.coursera.org) … 13.224.241.48, 13.224.241.124, 13.224.241.82, …
Conectarea la www.coursera.org (www.coursera.org) | 13.224.241.48 |: 443 … conectat.
Solicitare HTTP trimisă, așteptând răspuns…
HTTP / 1.1 200 OK
Content-Type: text / html
Lungime conținut: 511551
Conexiune: menține-te în viață
Cache-Control: privat, no-cache, no-store, must-revalidate, max-age = 0
Data: Duminică, 23 Feb 2020 11:47:01 GMT
etag: W /"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
Server: trimis
Set-Cookie: CSRF3-Token = 1583322421.s1b4QL6OXSUGHnRI; Max-Age = 864000; Expiră = Miercuri, 04 Mar 2020 11:47:02 GMT; Path = /; Domeniul = .coursera.org
Set-Cookie: __204u = 9205355775-1582458421174; Max-Age = 31536000; Expiră = Luni, 22 Feb 2021 11:47:02 GMT; Path = /; Domeniul = .coursera.org
Strict-Transport-Security: vârsta maximă = 31536000; includeSubDomains; preîncărcare
Opțiuni tip X-conținut: nosniff
x-coursera-render-mode: html
x-coursera-render-version: v2
X-Coursera-Cerere-ID: NCnPPlYyEeqfcxIHPk5Gqw
X-Coursera-Trace-Id-Hex: a5ef7028d77ae8f8
x-trimis-amonte-timp-serviciu: 1090
X-Frame-Options: SAMEORIGIN
x-powered-by: Express
Protecție X-XSS: 1; mode = bloc
X-Cache: Miss din cloudfront
Via: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: LHR62-C3
X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ ==
Lungime: 511551 (500K) [text / html]

Manipulează User-Agent

S-ar putea să existe o situație în care doriți să conectați un site folosind un user-agent personalizat. Sau agentul utilizator specific browserului. Acest lucru se realizează specificând –user-agent. Exemplul de mai jos este pentru agentul de utilizator ca MyCustomUserAgent.

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

Antetul gazdei

Când o aplicație este încă în curs de 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 gazdă pentru ca aplicația să funcționeze corect. În această situație, –header ar fi util.

Să luăm un exemplu de testare http://10.10.10.1 cu antetul gazdei ca aplicație.com

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

Nu doar gazdă, dar puteți injecta orice antet care vă place.

Conectați-vă folosind Proxy

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

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

Nu uitați să actualizați $ PROXYHOST: variabila 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 obliga wget-ul 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.

ETICHETE:

  • 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