10 exemples de commandes wget pour vous aider à dépanner

L’un des utilitaires fréquemment utilisés par sysadmin est wget. Cela peut être très pratique lors du dépannage lié au Web.


Qu’est-ce que la commande wget?

La commande wget est un utilitaire de ligne de commande Unix / Linux populaire pour récupérer le contenu à partir du Web. Il est gratuit et offre un moyen non interactif de télécharger des fichiers à partir du Web. La commande wget prend en charge les protocoles HTTPS, HTTP et FTP prêts à l’emploi. De plus, vous pouvez également utiliser des proxys HTTP avec.

Comment cela vous aide à dépanner?

Il y a plusieurs façons.

En tant qu’administrateur système, la plupart du temps, vous travaillerez sur un terminal et lors du dépannage de problèmes liés aux applications Web, vous ne voudrez peut-être pas vérifier la page entière, mais uniquement la connectivité. Ou, vous souhaitez vérifier les sites Web intranet. Ou, vous voulez télécharger une certaine page pour vérifier le contenu.

wget n’est pas interactif, ce qui signifie que vous pouvez l’exécuter en arrière-plan même lorsque vous êtes déconnecté. Il peut y avoir de nombreux cas où il est essentiel que vous vous déconnectiez du système, même lorsque vous effectuez une récupération de fichiers à partir du Web. En arrière-plan, le wget s’exécutera et terminera le travail qui lui a été assigné.

Il peut également être utilisé pour obtenir l’intégralité du site Web sur vos machines locales. Il peut suivre les liens dans XHTML et HTML pages pour créer une version locale. Pour ce faire, il doit télécharger la page récursivement. Ceci est très utile car vous pouvez l’utiliser pour télécharger des pages ou des sites importants pour une consultation hors ligne.

Voyons-les en action. La syntaxe du wget est la suivante.

wget [option] [URL]

Téléchargez une page web

Essayons de télécharger une page. Ex: github.com

wget github.com

Si la connectivité est bonne, alors il téléchargera la page d’accueil et affichera la sortie comme ci-dessous.

[protégé par e-mail]: ~ # wget github.com
URL transformée en HTTPS en raison d’une politique HSTS
–2020-02-23 10: 45: 52– https://github.com/
Résolution de github.com (github.com) … 140.82.118.3
Connexion à github.com (github.com) | 140.82.118.3 |: 443 … connecté.
Requête HTTP envoyée, en attente de réponse … 200 OK
Longueur: non spécifié [text / html]
Enregistrement dans: «index.html»

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

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

[protégé par e-mail]: ~ #

Télécharger plusieurs fichiers

Pratique lorsque vous devez télécharger plusieurs fichiers à la fois. Cela peut vous donner une idée de l’automatisation du téléchargement de fichiers via certains scripts.

Essayons de télécharger les fichiers Python 3.8.1 et 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

Donc, comme vous pouvez le deviner, la syntaxe est la suivante.

wget URL1 URL2 URL3

Il vous suffit de vous assurer de laisser de l’espace entre les URL.

Limitez la vitesse de téléchargement

Il serait utile de vérifier le temps de téléchargement de votre fichier sur une bande passante différente.

En utilisant l’option –limit-rate, vous pouvez limiter la vitesse de téléchargement.

Voici la sortie du téléchargement du fichier Nodejs.

[protégé par e-mail]: ~ # 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
Résolution de nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Connexion à nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … connecté.
Requête HTTP envoyée, en attente de réponse … 200 OK
Longueur: 14591852 (14M) [application / x-xz]
Enregistrement dans: «node-v12.16.1-linux-x64.tar.xz»

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

2020-02-23 10:59:58 (272 Mo / s) – «node-v12.16.1-linux-x64.tar.xz» enregistré [14591852/14591852]

Le téléchargement des fichiers 13,92 Mo a pris 0,05 seconde. Maintenant, essayons de limiter la vitesse à 500K.

[protégé par e-mail]: ~ # 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
Résolution de nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Connexion à nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … connecté.
Requête HTTP envoyée, en attente de réponse … 200 OK
Longueur: 14591852 (14M) [application / x-xz]
Enregistrement dans: «node-v12.16.1-linux-x64.tar.xz.1»

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

2020-02-23 11:00:46 (500 Ko / s) – «node-v12.16.1-linux-x64.tar.xz.1» enregistré [14591852/14591852]

La réduction de la bande passante a pris plus de temps à télécharger – 28 secondes. Imaginez, vos utilisateurs se plaignent du téléchargement lent et vous savez que leur bande passante réseau est faible. Vous pouvez rapidement essayer –limit-rate pour simuler le problème.

Télécharger en arrière-plan

Le téléchargement de fichiers volumineux peut prendre le temps ou l’exemple ci-dessus où vous souhaitez également définir la limite de débit. C’est prévu, mais que se passe-t-il si vous ne voulez pas regarder votre terminal?

Eh bien, vous pouvez utiliser l’argument -b pour démarrer le wget en arrière-plan.

[protégé par e-mail]: ~ # wget -b https://slack.com
Continuant en arrière-plan, pid 25430.
La sortie sera écrite dans «wget-log.1».
[protégé par e-mail]: ~ #

Ignorer l’erreur de certificat

Ceci est pratique lorsque vous devez vérifier les applications Web intranet qui ne disposent pas du certificat approprié. Par défaut, wget générera une erreur lorsqu’un certificat n’est pas valide.

[protégé par e-mail]: ~ # wget https://expired.badssl.com/
–2020-02-23 11: 24: 59– https://expired.badssl.com/
Résolution de expired.badssl.com (expired.badssl.com) … 104.154.89.105
Connexion à expired.badssl.com (expired.badssl.com) | 104.154.89.105 |: 443 … connecté.
ERREUR: impossible de vérifier le certificat expired.badssl.com, émis par «CN = COMODO RSA Domain Validation Secure Server CA, O = COMODO CA Limited, L = Salford, ST = Greater Manchester, C = GB»:
Le certificat émis a expiré.
Pour vous connecter à expired.badssl.com de manière non sécurisée, utilisez `–no-check-certificate ‘.

L’exemple ci-dessus concerne l’URL où le certificat a expiré. Comme vous pouvez le voir, il a suggéré d’utiliser –no-check-certificate qui ignorera toute validation de certificat.

[protégé par e-mail]: ~ # wget https://untrusted-root.badssl.com/ –no-check-certificate
–2020-02-23 11: 33: 45– https://untrusted-root.badssl.com/
Résolution de untrusted-root.badssl.com (untrusted-root.badssl.com) … 104.154.89.105
Connexion à untrusted-root.badssl.com (untrusted-root.badssl.com) | 104.154.89.105 |: 443 … connecté.
AVERTISSEMENT: impossible de vérifier le certificat de untrusted-root.badssl.com, émis par ‘CN = BadSSL Untrusted Root Certificate Authority, O = BadSSL, L = San Francisco, ST = California, C = US’:
Certificat auto-signé rencontré.
Requête HTTP envoyée, en attente de réponse … 200 OK
Longueur: 600 [text / html]
Enregistrement dans: «index.html.6»

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

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

[protégé par e-mail]: ~ #

Cool, n’est-ce pas?

En-tête de réponse HTTP

Voir l’en-tête de réponse HTTP d’un site donné sur le terminal.

L’utilisation de -S imprimera l’en-tête, comme vous pouvez le voir ci-dessous pour Coursera.

[protégé par e-mail]: ~ # wget https://www.coursera.org -S
–2020-02-23 11: 47: 01– https://www.coursera.org/
Résolution de www.coursera.org (www.coursera.org) … 13.224.241.48, 13.224.241.124, 13.224.241.82, …
Connexion à www.coursera.org (www.coursera.org) | 13.224.241.48 |: 443 … connecté.
Demande HTTP envoyée, en attente de réponse…
HTTP / 1.1 200 OK
Type de contenu: texte / html
Longueur du contenu: 511551
Connexion: garder en vie
Cache-Control: privé, sans cache, sans magasin, à revalider, max-age = 0
Date: dim.23 févr.2020 11:47:01 GMT
etag: W /"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
Serveur: envoyé
Set-Cookie: CSRF3-Token = 1583322421.s1b4QL6OXSUGHnRI; Max-Age = 864000; Expire = Wed, 04 mars 2020 11:47:02 GMT; Chemin = /; Domaine = .coursera.org
Set-Cookie: __204u = 9205355775-1582458421174; Max-Age = 31536000; Expire = lun, 22 fév 2021 11:47:02 GMT; Chemin = /; Domaine = .coursera.org
Strict-Transport-Security: max-age = 31536000; includeSubDomains; précharger
Options de type de contenu X: 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
Options X-Frame: SAMEORIGIN
alimenté par x: Express
Protection X-XSS: 1; mode = bloc
X-Cache: Miss de cloudfront
Via: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: LHR62-C3
X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ ==
Longueur: 511551 (500K) [texte / html]

Manipuler l’agent utilisateur

Il peut y avoir une situation où vous souhaitez connecter un site à l’aide d’un agent utilisateur personnalisé. Ou l’agent utilisateur d’un navigateur spécifique. Cela est possible en spécifiant –user-agent. L’exemple ci-dessous concerne l’agent utilisateur en tant que MyCustomUserAgent.

[protégé par e-mail]: ~ # wget https://gf.dev –user-agent ="MyCustomUserAgent"

En-tête d’hôte

Lorsqu’une application est encore en développement, vous ne disposez peut-être pas d’une URL appropriée pour la tester. Ou, vous pouvez vouloir tester une instance HTTP individuelle en utilisant IP, mais vous devez fournir l’en-tête de l’hôte pour que l’application fonctionne correctement. Dans cette situation, –header serait utile.

Prenons un exemple de test de http://10.10.10.1 avec l’en-tête d’hôte comme application.com

wget –header ="Hébergeur: application.com" http://10.10.10.1

Pas seulement l’hôte, mais vous pouvez injecter n’importe quel en-tête que vous aimez.

Se connecter à l’aide d’un proxy

Si vous travaillez dans un environnement DMZ, vous n’aurez peut-être pas accès aux sites Internet. Mais vous pouvez profiter du proxy pour vous connecter.

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

N’oubliez pas de mettre à jour la variable $ PROXYHOST: PORT avec les variables réelles.

Connectez-vous à l’aide d’un protocole TLS spécifique

Habituellement, je recommanderais d’utiliser OpenSSL pour tester le protocole TLS. Mais vous pouvez aussi utiliser wget.

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

Ce qui précède forcera wget à se connecter via TLS 1.2.

Conclusion

Connaître la commande nécessaire peut vous aider au travail. J’espère que ce qui précède vous donne une idée de ce que vous pouvez faire avec wget.

MOTS CLÉS:

  • 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