10 Exemples de commandes wget (Linux File Downloader) sous Linux
Dans cet article, nous allons passer en revue l’utilitaire wget qui récupère des fichiers du World Wide Web (WWW) à l’aide de protocoles largement utilisés tels que HTTP, HTTPS, FTP et FTPS.
Wget est un utilitaire de ligne de commande gratuit et un téléchargeur de fichiers en réseau, qui est livré avec de nombreuses fonctionnalités qui facilitent le téléchargement de fichiers, notamment :
- Téléchargez des fichiers volumineux ou mettez en miroir des sites Web ou FTP complets.
- Téléchargez plusieurs fichiers à la fois.
- Définissez une limite de bande passante et de vitesse pour les téléchargements.
- Téléchargez des fichiers via des proxys.
- Peut reprendre les téléchargements interrompus.
- Mettre en miroir récursivement les répertoires.
- Fonctionne sur la plupart des systèmes d’exploitation de type UNIX ainsi que sur Windows.
- Fonctionnement sans surveillance/en arrière-plan.
- Prise en charge des connexions HTTP persistantes.
- Prise en charge de SSL/TLS pour les téléchargements chiffrés à l’aide de la bibliothèque OpenSSL ou GnuTLS.
- Prise en charge des téléchargements IPv4 et IPv6.
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 n’est pas déjà installé ou non dans votre machine Linux, à l’aide de 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 permet d’empêcher les invites de confirmation avant l’installation d’un paquet. Pour plus d’exemples et d’options de commandes YUM et APT, lisez nos articles sur :
- 20 commandes Linux YUM pour la gestion des paquets
- 15 exemples de commandes APT dans Ubuntu/Debian & Mint
- 45 exemples de commandes zypper pour gérer OpenSUSE Linux
1. Téléchargez un fichier avec wget
La commande téléchargera un seul fichier et le stockera dans un répertoire courant. Il indique également la progression du téléchargement, la taille, la date et l’heure du 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. Fichier de téléchargement Wget avec un nom différent
À l’aide de l’option -O (majuscules), les fichiers avec des noms de fichiers différents sont téléchargés. Ici, nous avons donné le nom du 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. Wget Télécharger plusieurs fichiers avec les protocoles HTTP et FTP
Ici, nous voyons comment télécharger plusieurs fichiers à l’aide des protocoles HTTP et FTP avec la commande wget simultanément.
$ 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. Wget télécharger plusieurs fichiers à partir d’un fichier
Pour télécharger plusieurs fichiers à la fois, utilisez l’option -i avec l’emplacement du fichier qui contient la liste des URL à télécharger. Chaque URL doit être ajoutée sur une ligne distincte, 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 a un modèle de numérotation particulier, vous pouvez ajouter des accolades pour récupérer toutes les URL qui correspondent au modèle. Par exemple, si vous souhaitez télécharger une série de noyaux Linux à partir de la version 5.1.1 vers la version 5.1.15, vous pouvez procéder comme 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. Wget CV téléchargement inachevé
En cas de téléchargement de gros fichiers, il peut arriver parfois d’arrêter le téléchargement, dans ce cas, nous pouvons reprendre le téléchargement du même fichier là où il avait été laissé avec l’option -c.
Mais lorsque vous commencez à télécharger des fichiers sans spécifier -c, une option wget ajoutera l’extension .1 à la fin du fichier, considéré comme un nouveau téléchargement. Il est donc recommandé d’ajouter l’option -c lorsque vous téléchargez des fichiers volumineux.
# 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. Wget Mirror : tout le site Web
Pour télécharger, mettre en miroir ou copier l’intégralité d’un site Web pour une consultation hors ligne, vous pouvez utiliser la commande suivante qui effectuera une copie locale du site Web avec toutes les ressources (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. Wget Télécharger des fichiers en arrière-plan
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 l’écriture des journaux 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. Wget Set Limites de vitesse de téléchargement de fichiers
Avec l’option --limit-rate=100k, la limite de vitesse de téléchargement est limitée à 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’.
Affichez 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. Wget télécharger des fichiers protégés par mot de passe 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. Wget ignore la vérification du certificat SSL
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 afficher la version et l’aide si nécessaire.
$ wget --version
wget --help
Dans cet article, nous avons couvert les commandes Linux wget avec des options pour les tâches administratives quotidiennes. N’hésitez pas à le faire si vous voulez en savoir plus ? Veuillez partager via notre boîte de commentaires ou si nous avons manqué quelque chose, faites-le nous savoir.