Dans cet article, nous passerons en revue l’utilitaire wget qui récupère des fichiers depuis le World Wide Web (WWW) en utilisant des protocoles largement utilisés tels que HTTP, HTTPS, FTP et FTPS.
Wget est un utilitaire en ligne de commande gratuit et un téléchargeur de fichiers réseau, qui dispose de nombreuses fonctionnalités facilitant le téléchargement de fichiers, notamment :
- Télécharger de gros fichiers ou miroiter des sites web ou des sites FTP complets.
- Télécharger plusieurs fichiers à la fois.
- Définir la bande passante et la limite de vitesse pour les téléchargements.
- Télécharger des fichiers via des proxys.
- Peut reprendre les téléchargements interrompus.
- Mirroir récursivement des répertoires.
- Fonctionne sur la plupart des systèmes d’exploitation de type UNIX ainsi que sur Windows.
- Opération non surveillée / en arrière-plan.
- Prise en charge des connexions HTTP persistantes.
- Prise en charge de SSL/TLS pour des téléchargements chiffrés utilisant la bibliothèque OpenSSL ou GnuTLS.
- Prise en charge des téléchargements IPv4 et IPv6.
Table des matières
Syntaxe de la commande Wget
La syntaxe de base de Wget est la suivante :
$ wget [option] [URL]
Tout d’abord, vérifiez si l’utilitaire wget est déjà installé ou non sur votre boîte Linux, en utilisant la commande suivante.
$ rpm -q wget [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ dpkg -l | grep wget [On Debian, Ubuntu and Mint]
Installer Wget sur Linux
Si Wget n’est pas installé, vous pouvez l’installer en utilisant le gestionnaire de paquets par défaut de votre système Linux, comme indiqué.
$ sudo apt install wget -y [On Debian, Ubuntu and Mint] $ sudo yum install wget -y [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a net-misc/wget [On Gentoo Linux] $ sudo pacman -Sy wget [On Arch Linux] $ sudo zypper install wget [On OpenSUSE]
L’option -y utilisée ici est pour empêcher les invites de confirmation avant d’installer un paquet. Pour plus d’exemples de commandes et d’options YUM et APT, consultez nos articles sur :
- 20 commandes Linux YUM pour la gestion de paquets
- 15 Exemples de Commandes APT dans Ubuntu/Debian & Mint
- 45 Exemples de Commandes Zypper pour Gérer OpenSUSE Linux
1. Télécharger un Fichier avec Wget
La commande téléchargera un seul fichier et le stockera dans le répertoire actuel. Elle montre également la progression du téléchargement, la taille, la date et l’heure pendant le téléchargement.
# wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz --2021-12-10 04:15:16-- http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3565643 (3.4M) [application/x-gzip] Saving to: ‘wget2-2.0.0.tar.gz’ wget2-2.0.0.tar.gz 100%[==========>] 3.40M 2.31MB/s in 1.5s 2021-12-10 04:15:18 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]
2. Télécharger un Fichier avec un Nom Différent avec Wget
En utilisant l’option -O
(majuscule), les fichiers sont téléchargés avec des noms de fichiers différents. Ici, nous avons donné le nom de fichier wget.zip comme indiqué ci-dessous.
# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz --2021-12-10 04:20:19-- http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 446966 (436K) [application/x-gzip] Saving to: ‘wget.zip’ wget.zip 100%[===================>] 436.49K 510KB/s in 0.9s 2021-12-10 04:20:21 (510 KB/s) - ‘wget.zip’ saved [446966/446966]
3. Télécharger Plusieurs Fichiers avec les Protocoles HTTP et FTP Utilisant Wget
Ici, nous voyons comment télécharger plusieurs fichiers en utilisant les protocoles HTTP et FTP simultanément avec la commande wget.
$ wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig --2021-12-10 06:45:17-- http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3565643 (3.4M) [application/x-gzip] Saving to: ‘wget2-2.0.0.tar.gz’ wget2-2.0.0.tar.gz 100%[==========>] 4.40M 4.31MB/s in 1.1s 2021-12-10 06:46:10 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]
4. Télécharger plusieurs fichiers avec Wget à partir d’un fichier
Pour télécharger plusieurs fichiers en une fois, utilisez l’option -i
avec l’emplacement du fichier contenant la liste des URL à télécharger. Chaque URL doit être ajoutée sur une ligne séparée comme indiqué.
Par exemple, le fichier suivant ‘download-linux.txt‘ contient la liste des URL à télécharger.
# cat download-linux.txt https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso
# wget -i download-linux.txt --2021-12-10 04:52:40-- https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.88.247, 91.189.91.124, ... Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3071934464 (2.9G) [application/x-iso9660-image] Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’ ubuntu-20.04.3-desktop-amd64 4%[=> ] 137.71M 11.2MB/s eta 3m 30s ...
Si votre liste d’URL présente un motif de numérotation particulier, vous pouvez ajouter des accolades pour récupérer toutes les URL correspondant au motif. Par exemple, si vous souhaitez télécharger une série de noyaux Linux à partir de la version 5.1.1 jusqu’à 5.1.15, vous pouvez faire ce qui suit.
$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz --2021-12-10 05:46:59-- https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1 Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected. WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted. WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated. The certificate has not yet been activated HTTP request sent, awaiting response... 200 OK Length: 164113671 (157M) [application/x-gzip] Saving to: ‘linux-5.1.1.tar.gz’ linux-5.1.1.tar.gz 100%[===========>] 156.51M 2.59MB/s in 61s 2021-12-10 05:48:01 (2.57 MB/s) - ‘linux-5.1.1.tar.gz’ saved [164113671/164113671] --2021-12-10 05:48:01-- https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz Reusing existing connection to mirrors.edge.kernel.org:443. HTTP request sent, awaiting response... 200 OK Length: 164110470 (157M) [application/x-gzip] Saving to: ‘linux-5.1.2.tar.gz’ linux-5.1.2.tar.gz 19%[===========] 30.57M 2.58MB/s eta 50s
5. Reprendre un téléchargement interrompu avec Wget
Dans le cas d’un téléchargement de gros fichiers, il peut arriver parfois d’interrompre le téléchargement, dans ce cas, nous pouvons reprendre le téléchargement du même fichier là où il s’était arrêté avec l’option -c
.
Mais lorsque vous commencez à télécharger des fichiers sans spécifier l’option -c
, Wget ajoutera l’extension .1
à la fin du fichier, considéré comme un téléchargement frais. Par conséquent, il est bon de pratiquer l’ajout de l’option -c lors du téléchargement de gros fichiers.
# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso --2021-12-10 05:27:59-- https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.247, 91.189.91.123, 91.189.91.124, ... Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443... connected. HTTP request sent, awaiting response... 206 Partial Content Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image] Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’ ubuntu-20.04.3-desktop-amd64.iso 5%[++++++> ] 167.93M 11.1MB/s ^C [root@tecmint ~]# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso --2021-12-10 05:28:03-- https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.91.124, 91.189.91.123, ... Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected. HTTP request sent, awaiting response... 206 Partial Content Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image] Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’ ubuntu-20.04.3-desktop-amd64.iso 10%[+++++++=====> ] 296.32M 17.2MB/s eta 2m 49s ^
6. Miroiter un site Web entier avec Wget
Pour télécharger, miroir ou copier un site Web entier pour une consultation hors ligne, vous pouvez utiliser la commande suivante qui fera une copie locale du site Web avec tous les éléments (JavaScript, CSS, Images).
$ wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com
Explication de la commande ci-dessus.
wget \ --recursive \ # Download the whole site. --page-requisites \ # Get all assets/elements (CSS/JS/images). --adjust-extension \ # Save files with .html on the end. --span-hosts \ # Include necessary assets from offsite as well. --convert-links \ # Update links to still work in the static version. --restrict-file-names=windows \ # Modify filenames to work in Windows as well. --domains yoursite.com \ # Do not follow links outside this domain. --no-parent \ # Don't follow links outside the directory you pass in. yoursite.com/whatever/path # The URL to download
7. Télécharger des fichiers en arrière-plan avec Wget
Avec l’option -b
, vous pouvez envoyer un téléchargement en arrière-plan immédiatement après le démarrage du téléchargement et les journaux sont écrits dans le fichier wget.log.
$ wget -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso Continuing in background, pid 8999. Output will be written to ‘wget.log’.
8. Limiter la vitesse de téléchargement des fichiers avec Wget
Avec l’option --limit-rate=100k
, la limite de vitesse de téléchargement est restreinte à 100k et les journaux seront créés sous wget.log comme indiqué ci-dessous.
$ wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso Continuing in background, pid 9108. Output will be written to ‘wget-log’.
Consultez le fichier wget.log et vérifiez la vitesse de téléchargement du wget.
$ tail -f wget-log 5600K .......... .......... .......... .......... .......... 0% 104K 8h19m 5650K .......... .......... .......... .......... .......... 0% 103K 8h19m 5700K .......... .......... .......... .......... .......... 0% 105K 8h19m 5750K .......... .......... .......... .......... .......... 0% 104K 8h18m 5800K .......... .......... .......... .......... .......... 0% 104K 8h18m 5850K .......... .......... .......... .......... .......... 0% 105K 8h18m 5900K .......... .......... .......... .......... .......... 0% 103K 8h18m 5950K .......... .......... .......... .......... .......... 0% 105K 8h18m 6000K .......... .......... .......... .......... .......... 0% 69.0K 8h20m 6050K .......... .......... .......... .......... .......... 0% 106K 8h19m 6100K .......... .......... .......... .......... .......... 0% 98.5K 8h20m 6150K .......... .......... .......... .......... .......... 0% 110K 8h19m 6200K .......... .......... .......... .......... .......... 0% 104K 8h19m 6250K .......... .......... .......... .......... .......... 0% 104K 8h19m ...
9. Télécharger des fichiers protégés par mot de passe avec Wget via FTP et HTTP
Pour télécharger un fichier à partir d’un serveur FTP protégé par mot de passe, vous pouvez utiliser les options --ftp-user=username
et --ftp-password=password
comme indiqué.
$ wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz
Pour télécharger un fichier à partir d’un serveur HTTP protégé par mot de passe, vous pouvez utiliser les options --http-user=username
et --http-password=password
comme indiqué.
$ wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz
10. Ignorer la vérification du certificat SSL avec Wget
Pour ignorer la vérification du certificat SSL lors du téléchargement de fichiers via HTTPS, vous pouvez utiliser l’option --no-check-certificate
:
$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz --2021-12-10 06:21:21-- https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1 Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected. WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted. WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated. The certificate has not yet been activated HTTP request sent, awaiting response... 200 OK Length: 164113671 (157M) [application/x-gzip] Saving to: ‘linux-5.1.1.tar.gz’ ...
11. Version et aide de Wget
Avec les options --version
et --help
, vous pouvez consulter la version et obtenir de l’aide selon vos besoins.
$ wget --version $ wget --help
Dans cet article, nous avons couvert les commandes Linux wget avec des options pour les tâches administratives quotidiennes. Consultez le manuel de wget si vous souhaitez en savoir plus à ce sujet. N’hésitez pas à partager via notre boîte de commentaires ou si nous avons omis quelque chose, faites-le nous savoir.
Source:
https://www.tecmint.com/10-wget-command-examples-in-linux/