
L'outil de ligne de commande Linux wget est un utilitaire astucieux utilisé pour télécharger des fichiers sur Internet. Il est généralement utilisé lorsque vous souhaitez télécharger des fichiers tarball et compressés, des packages deb et rpm à partir d'un site Web.
Avec la commande wget, vous pouvez télécharger un fichier via les protocoles HTTP, HTTPS ou même FTP. Un certain nombre d'options que vous pouvez utiliser avec la commande wget qui la rend puissante.
Dans ce tutoriel, nous verrons comment utiliser la commande GNU wget à travers des exemples.
syntaxe de wget
La syntaxe d'utilisation de wget est assez simple. Invoquez simplement la commande wget, suivie des options, puis du lien vers le site Web, comme indiqué.
$ wget [ options ] url
Installer wget
La plupart des distributions Linux modernes sont livrées avec l'utilitaire wget, vous n'aurez donc pas besoin de l'installer. Cependant, il existe des cas où l'installation peut être nécessaire, en particulier dans les systèmes plus anciens et certaines instances cloud ou pour résoudre le message d'erreur '–bash:wget:Command not found'.
Pour les versions Ubuntu et Debian, exécutez la commande suivante à l'aide du gestionnaire de packages APT :
$ sudo apt-get install wget
Pour installer la commande wget dans les versions RHEL / CentOS 8, exécutez :
$ sudo dnf install wget
Pour les versions plus anciennes (RHEL 7 et CentOS 7 et versions antérieures), utilisez le gestionnaire de packages yum comme suit
$ sudo yum install wget
Pour les distributions Arch Linux et Arch Linux telles que Manjaro, Arch Linux et Endeavour OS, utilisez le gestionnaire de packages pacman comme suit :
$ sudo pacman -S wget
Télécharger un fichier depuis Internet
Dans sa forme la plus basique, sans utiliser aucune option, la commande wget télécharge un fichier depuis Internet comme spécifié dans l'URL. La syntaxe la plus simple est illustrée ci-dessous :
$ wget website_url
Par exemple, dans l'exemple ci-dessous, nous téléchargeons la dernière archive tar WordPress à partir du site WordPress officiel.
$ wget https://wordpress.org/latest.tar.gz
À partir de la sortie, nous pouvons voir que wget résout d'abord le domaine du site Web en une adresse IP, sur laquelle il se connecte au serveur et lance ensuite le transfert de fichiers. Lorsque le téléchargement est en cours, vous pouvez voir la barre de progression indiquant le nom du fichier, la taille, la vitesse de téléchargement ainsi que l'heure estimée d'achèvement du téléchargement.
Une fois le téléchargement terminé, assurez-vous de trouver le fichier dans votre répertoire de travail actuel. Cela peut être vérifié en appelant la commande ls.
Télécharger le fichier et enregistrer sous un nom spécifique
Si vous préférez enregistrer le fichier sous un nom différent du nom d'origine, passez simplement le -O
option suivie de votre nom préféré.
$ wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz
La commande ci-dessus télécharge le fichier d'origine "latest.tar.gz" depuis le site WordPress et l'enregistre sous "wordpress.tar.gz".
Télécharger dans un répertoire spécifique
Comme indiqué précédemment, wget télécharge le fichier dans votre répertoire de travail actuel. Vous pouvez spécifier un emplacement de téléchargement différent en utilisant le -P
drapeau suivi du chemin vers le répertoire de destination.
$ wget -P /var/www/html https://wordpress.org/latest.tar.gz
Dans l'exemple ci-dessus, le fichier est enregistré dans le répertoire /var/www/html.
Limiter la vitesse de téléchargement
En utilisant wget, vous pouvez également limiter la vitesse à laquelle les fichiers sont téléchargés. Pour limiter la vitesse de téléchargement, appelez le --limit-rate
option suivie de la vitesse de téléchargement. La vitesse est généralement mesurée en octets par seconde.
Pour définir le débit limite à 500 Ko/s, exécutez la commande suivante :
$ wget --limit-rate=500k https://wordpress.org/latest.tar.gz
Comment continuer à recevoir un fichier partiellement téléchargé
Parfois, lors du téléchargement d'un fichier, votre connexion peut soudainement s'interrompre, vous laissant avec un fichier partiellement téléchargé. Au lieu de redémarrer le téléchargement, utilisez le wget -C
possibilité de reprendre votre téléchargement comme indiqué.
$ wget -c https://wordpress.org/latest.tar.gz
Dans l'exemple ci-dessus, nous reprenons le téléchargement du fichier tarball depuis WordPress. Notez que si le site Web ne répond pas à la reprise du téléchargement du fichier, la commande redémarrera le téléchargement du fichier et écrasera celui existant.
Télécharger le fichier en arrière-plan
Pour télécharger un fichier en arrière-plan, passez le wget -b
comme indiqué ci-dessous.
$ wget -b https://osdn.net/projects/manjaro/storage/kde/20.0.3/manjaro-kde-20.0.3-200606-linux56.iso
Dans l'exemple ci-dessus, nous téléchargeons le fichier ISO Manjaro KDE Plasma en arrière-plan. Pour surveiller l'état du téléchargement, utilisez la commande wget log comme indiqué
$ tail –f wget –log
Télécharger plusieurs fichiers
Si vous avez plusieurs fichiers à télécharger, il est fastidieux d'exécuter la commande wget de manière répétitive sur le terminal. Une meilleure approche serait d'exécuter la commande wget une fois pour télécharger les fichiers les uns après les autres.
Pour ce faire, enregistrez les URL du site Web dans un fichier texte. Ensuite, invoquez la commande wget avec le -i
suivi du nom du fichier texte.
Dans cet exemple, nous voulons télécharger le fichier tarball WordPress et le fichier compressé OwnCloud. Tout d'abord, nous avons enregistré les liens de téléchargement dans un exemple de fichier, appelons-le "downloads.txt":
https://wordpress.org/latest.tar.gz
https://download.owncloud.org/community/owncloud-complete-20200731.zip
Maintenant, pour télécharger plusieurs fichiers, exécutez :
$ wget -i downloads.txt
Ceux-ci seront téléchargés les uns après les autres. Et c'est ainsi que vous téléchargez plusieurs fichiers.
Télécharger un miroir d'un site Web
Une autre utilisation peu connue de wget est la possibilité de cloner ou de créer une copie miroir d'un site Web. Vous pouvez y parvenir en passant le -m
comme indiqué. Cela crée une copie miroir du site Web avec tous les liens internes et d'autres ressources telles que les images, les widgets, Javascript et les fichiers CSS.
$ wget -m http://www.example.com
Si vous avez l'intention de cloner un site Web pour la navigation locale, transmettez des arguments supplémentaires comme indiqué.
$ wget -m -k -p http://www.example.com
Le -k
flag facilite la conversion du lien dans un format adapté à la visualisation locale. Pendant ce temps, le -p
L'option indique à l'utilitaire wget de télécharger les fichiers pertinents nécessaires pour afficher le contenu d'une page HTML sur un navigateur.
Ignorer le certificat SSL
Pour éviter de rencontrer une erreur lors du téléchargement d'un fichier via HTTPS à partir d'un serveur Web dont le certificat SSL n'est pas fiable ou valide, transmettez le --no-check-certificate
choix :
$ wget --no-check-certificate https://domain-with-untrusted-ssl-cert
Télécharger et rediriger la sortie vers le fichier journal
La sortie de la commande wget peut être enregistrée pendant le téléchargement du fichier en utilisant le -o
comme indiqué :
$ wget -o download.log https://wordpress.org/latest.tar.gz
Par la suite, vous pouvez afficher le fichier journal en temps réel au fur et à mesure de la progression du téléchargement à l'aide de la commande tail comme indiqué :
$ tail -f download.log
Limiter les tentatives de téléchargement
Parfois, vous pouvez rencontrer des vitesses de bande passante lentes qui peuvent vous empêcher de télécharger un fichier. Vous pouvez définir le nombre de tentatives de téléchargement à l'aide de wget --tries=[no. of tries]
comme indiqué :
$ wget --tries=10 https://wordpress.org/latest.tar.gz
Dans l'exemple ci-dessus, get réessayera de télécharger le fichier tarball 10 fois avant de quitter.
Télécharger depuis le serveur FTP
Vous pouvez également télécharger un fichier à partir d'un serveur FTP, même s'il est protégé par un mot de passe. Tout ce que vous avez à faire est de passer le nom d'utilisateur et le mot de passe ftp dans la commande wget comme indiqué :
$ wget --ftp-user=[ftp_user] --ftp-password=[ftp_password] ftp://ftp.ftp-site.com
Modifier l'agent utilisateur wget
Un agent utilisateur est essentiellement un champ d'en-tête qui est envoyé à un serveur Web par un navigateur. Si vous téléchargez une page Web, wget émulera un navigateur Web. Il se trouve que parfois, vous obtenez une erreur indiquant que vous n'avez pas les autorisations suffisantes pour accéder au serveur. Lorsque cela se produit, il est probable que le site Web ou le serveur Web bloque le navigateur associé à un « agent utilisateur » particulier. Voici une base de données des agents utilisateurs que vous pouvez trouver.
Pour changer d'agent utilisateur, utilisez la syntaxe :
$ wget -U "user agent" URL
Par exemple, pour télécharger le site example.com en émulant Google Chrome version 74 - qui est la dernière version, utilisez :
$ wget -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "http://example.com"
Téléchargement récursif
Pour télécharger un site Web pour un affichage local, vous devez activer les téléchargements récursifs avec -r
ou --recursive
option et les liens sont convertis en liens locaux avec -k
ou --convert-links
option.
Par exemple :
$ wget -rk https://example.com
Conclusion
Comme vous l'avez observé, wget est un outil tellement puissant et flexible que vous pouvez utiliser pour récupérer des fichiers sur Internet. Dans ce didacticiel, je vous ai montré différentes manières d'utiliser wget et de télécharger des fichiers et des pages Web à partir de serveurs Web via http, https et ftp. Pour plus d'informations sur l'utilisation de la commande wget, consultez les pages de manuel.