10 exemples de comandaments wget per ajudar-vos a resoldre problemes

Una de les utilitats més utilitzades per sysadmin és el wget. Pot ser molt útil durant la resolució de problemes relacionats amb la web.


Què és l’ordre wget?

L’ordena wget és una utilitat popular de la línia d’ordres Unix / Linux per obtenir el contingut del web. És gratuït d’utilitzar i proporciona una manera no interactiva de descarregar fitxers de la web. La comanda wget és compatible amb els protocols HTTPS, HTTP i FTP. A més, també podeu utilitzar representants HTTP amb ell.

Com us ajuda a resoldre problemes?

Hi ha moltes maneres.

Com a sysadmin, la majoria de vegades treballaràs en un terminal i, quan solucioneu problemes relacionats amb l’aplicació web, potser no voldreu comprovar tota la pàgina, sinó només la connectivitat. O bé, voleu verificar els llocs web d’intranet. O bé, voleu descarregar una pàgina determinada per verificar el contingut.

wget no és interactiu, cosa que significa que podeu executar-lo en segon pla fins i tot quan sigueu desconnectat. Hi ha molts casos en què és imprescindible desconnectar del sistema, fins i tot quan es faci una recuperació de fitxers del web. Al fons, el wget es publicarà i finalitzarà la tasca assignada.

També es pot utilitzar per obtenir tot el lloc web a les màquines locals. Pot seguir els enllaços a XHTML i HTML pàgines per crear una versió local. Per fer-ho, ha de descarregar la pàgina de manera recursiva. Això és molt útil ja que podeu utilitzar-lo per descarregar pàgines o llocs importants per a la visualització fora de línia.

Els veiem en acció. La sintaxi del wget és la següent.

wget [opció] [URL]

Baixeu una pàgina web

Intentem descarregar una pàgina. Ex: github.com

wget github.com

Si la connectivitat està bé, descarregarà la pàgina principal i mostrarà la sortida com es mostra a continuació.

[correu electrònic protegit]: ~ # wget github.com
L’URL s’ha transformat a HTTPS a causa d’una política HSTS
–2020-02-23 10: 45: 52– https://github.com/
Resolució de github.com (github.com) … 140.82.118.3
S’està connectant a github.com (github.com) | 140.82.118.3 |: 443 … connectat.
S’ha enviat la sol·licitud HTTP en espera de resposta … 200 d’acord
Durada: no especificat [text / html]
Desant a: “index.html”

index.html [ <=> ] 131,96K –.- KB / s en 0,04s

2020-02-23 10:45:52 (2,89 MB / s): s’ha desat “index.html” [135126]

[correu electrònic protegit]: ~ #

Descarregueu diversos fitxers

És útil quan heu de descarregar diversos fitxers alhora. Això us pot donar una idea sobre l’automatització de la descàrrega de fitxers mitjançant alguns scripts.

Intentem descarregar fitxers 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

Per tant, com podeu endevinar, la sintaxi és la següent.

wget URL1 URL2 URL3

Només heu d’assegurar-vos de proporcionar espai entre els URL.

Limita la velocitat de descàrrega

Seria útil quan voleu comprovar quant de temps triga el vostre fitxer a descarregar-se a l’ample de banda diferent.

Mitjançant l’opció –limit-rate, podeu limitar la velocitat de descàrrega.

Aquí teniu la sortida de la descàrrega del fitxer Nodejs.

[correu electrònic protegit]: ~ # 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
Resolució de nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10: 6814: 162e, …
S’està connectant a nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … connectat.
S’ha enviat la sol·licitud HTTP en espera de resposta … 200 d’acord
Durada: 14591852 (14M) [aplicació / x-xz]
Desant a: “node-v12.16.1-linux-x64.tar.xz”

node-v12.16.1-linux-x64.tar.xz 100% [================================== ================================================= ========>] 13,92M –.- KB / s en 0,05s

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

Es van trigar 0,05 segons a descarregar fitxers de 13,92 MB. Ara, intentem limitar la velocitat a 500K.

[correu electrònic protegit]: ~ # 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
Resolució de nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10: 6814: 162e, …
S’està connectant a nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … connectat.
S’ha enviat la sol·licitud HTTP en espera de resposta … 200 d’acord
Durada: 14591852 (14M) [aplicació / x-xz]
Desant a: “node-v12.16.1-linux-x64.tar.xz.1”

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

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

La reducció de l’amplada de banda va trigar més temps a descarregar-se: 28 segons. Imagineu-vos que els vostres usuaris es queixen de baixada lenta i sabeu que l’amplada de banda de la xarxa és baixa. Podeu provar ràpidament –limit-rate per simular el problema.

Baixeu en segon pla

Si descarregueu fitxers grans, podeu trigar el temps o l’exemple anterior on també vulgueu establir el límit de tarifa. Això s’espera, però, si no voleu mirar el vostre terminal?

Bé, podeu utilitzar l’argument -b per iniciar el wget en segon pla.

[correu electrònic protegit]: ~ # wget -b https://slack.com
Continuant en segon pla, pid 25430.
La sortida s’escriurà a “wget-log.1”.
[correu electrònic protegit]: ~ #

Ignoreu l’error del certificat

Això és útil quan heu de comprovar les aplicacions web intranet que no disposen del certificat adequat. De manera predeterminada, wget llançarà un error quan un certificat no sigui vàlid.

[correu electrònic protegit]: ~ # wget https://expired.badssl.com/
–2020-02-23 11: 24: 59– https://expired.badssl.com/
Resolució de expired.badssl.com (expired.badssl.com) … 104.154.89.105
S’està connectant a expired.badssl.com (expired.badssl.com) | 104.154.89.105 |: 443 … connectat.
ERROR: no es pot verificar el certificat de expired.badssl.com, emès per “CN = COMODO RSA Validació de dominis Secure Server CA, O = COMODO CA Limited, L = Salford, ST = Major Manchester, C = GB”:
El certificat emès ha caducat.
Per connectar-se a fitxers expired.badssl.com de forma insegura, utilitzeu `–no-check-certificate ‘.

L’exemple anterior és per a l’URL on el certificat ha caducat. Com podeu veure, ha suggerit l’ús de –no-check-certificate que ignorarà qualsevol validació de certificació.

[correu electrònic protegit]: ~ # wget https://untrusted-root.badssl.com/ –no-check-certificate
–2020-02-23 11: 33: 45– https://untrusted-root.badssl.com/
Resolució untrusted-root.badssl.com (untrusted-root.badssl.com) … 104.154.89.105
Connexió a untrusted-root.badssl.com (untrusted-root.badssl.com) | 104.154.89.105 |: 443 … connectat.
ADVERTIMENT: no pot verificar el certificat untrusted-root.badssl.com, emès per “CN = BadSSL Autoritat de certificat d’arrel no fiada, O = BadSSL, L = San Francisco, ST = Califòrnia, C = EUA”:
S’ha trobat un certificat autofirmat.
S’ha enviat la sol·licitud HTTP en espera de resposta … 200 d’acord
Durada: 600 [text / html]
Desant a: “index.html.6”

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

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

[correu electrònic protegit]: ~ #

Genial, no??

Capçalera de resposta HTTP

Vegeu la capçalera de resposta HTTP d’un lloc determinat al terminal.

Si utilitzeu -S, s’imprimirà la capçalera, com es pot veure a continuació Coursera.

[correu electrònic protegit]: ~ # wget https://www.coursera.org -S
–2020-02-23 11: 47: 01– https://www.coursera.org/
Resolció de www.coursera.org (www.coursera.org) … 13.224.241.48, 13.224.241.124, 13.224.241.82, …
Connexió a www.coursera.org (www.coursera.org) | 13.224.241.48 |: 443 … connectat.
S’ha enviat la sol·licitud HTTP en espera de resposta…
HTTP / 1.1 200 D’acord
Contingut: text / html
Durada del contingut: 511551
Connexió: mantenir viva
Control de memòria cau: privat, no-cache, sense botiga, ha de revalidar, max-age = 0
Data: dim., 23 de febrer de 2020 11:47:01 GMT
etag: W /"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
Servidor: enviat
Set-Cookie: CSRF3-Token = 1583322421.s1b4QL6OXSUGHnRI; Edat màxima = 864000; Caduca = dim, 4 de març de 2020 a les 11:47:02 GMT; Camí = /; Domini = .coursera.org
Set-Cookie: __204u = 9205355775-1582458421174; Edat màxima = 31536000; Caduca = dilluns, 22 de febrer de 2021 a les 11:47:02 GMT; Camí = /; Domini = .coursera.org
Strict-Transport-Security: edat màxima = 31536000; inclouSubDomains; precàrrega
Opcions del tipus de contingut X: Nosniff
x-coursera-render-mode: html
Versió x-coursera-render: v2
X-Coursera-Sol·licitud d’ID: NCnPPlYyEeqfcxIHPk5Gqw
X-Coursera-Trace-Id-Hex: a5ef7028d77ae8f8
x-envoy-upstream-time-service: 1090
Opcions de fotogrames X: SAMEORIGIN
x-powered by: Express
Protecció X-XSS: 1; mode = bloc
X-Cache: Missa des de primera línia de núvol
Via: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: LHR62-C3
X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ ==
Durada: 511551 (500K) [text / html]

Manipuleu l’agent d’usuari

Hi pot haver una situació en què vulgueu connectar un lloc mitjançant un agent d’usuari personalitzat. O l’agent d’usuari del navegador específic. Això es pot fer especificant -user-agent. L’exemple següent és per a l’agent d’usuari com MyCustomUserAgent.

[correu electrònic protegit]: ~ # wget https://gf.dev –user-agent ="MyCustomUserAgent"

Capçalera de l’amfitrió

Quan una aplicació encara està en desenvolupament, és possible que no tingueu una adreça URL adequada per provar-la. O bé, potser voldreu provar una instància HTTP individual mitjançant IP, però heu de proporcionar la capçalera de l’amfitrió perquè l’aplicació funcioni correctament. En aquesta situació, –header seria útil.

Prenem un exemple de prova http://10.10.10.1 amb la capçalera de l’amfitrió com a application.com

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

No només host, sinó que podeu injectar qualsevol capçalera que vulgueu.

Connexió mitjançant proxy

Si treballeu en un entorn DMZ, és possible que no tingueu accés a llocs d’Internet. Però podeu aprofitar el proxy per connectar-vos.

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

No oblideu actualitzar $ PROXYHOST: PORT variable amb les actuals.

Connecta’t mitjançant un protocol TLS específic

Normalment, recomanaria utilitzar OpenSSL per provar el protocol TLS. Però, també podeu fer servir wget.

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

L’esmentat anterior obligarà el wget a connectar-se a través de TLS 1.2.

Conclusió

Conèixer el comandament necessari us pot ajudar a la feina. Espero que l’anterior us ofereix una idea del que podeu fer amb 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