Présentation
La commande Wget est un utilitaire de ligne de commande Linux qui nous aide à télécharger les fichiers à partir du Web. Nous pouvons télécharger les fichiers à partir de serveurs Web en utilisant les protocoles HTTP, HTTPS et FTP. Nous pouvons utiliser wget dans les scripts et les cronjobs.
Ici, non interactif signifie qu'il peut fonctionner en arrière-plan, alors que l'utilisateur n'est pas connecté. Lorsque nous effectuons l'installation minimale des distributions Linux, la commande wget n'est pas installée, donc pour installer wget sur les distributions Linux, exécutez
$ sudo yum install -y wget for CentOS 7 / RHEL 7
$ sudo dnf install -y wget for CentOS 8/ RHEL 8/ Rocky Linux 8
$ sudo apt install -y wget for Ubuntu / Debian
$ sudo pacman -S wget for Arch Linux
$ sudo zypper install wget for OpenSUSE
Télécharger un seul fichier avec wget
[unixcop@rhel-pc ~]$ wget https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
--2021-08-13 04:24:05-- https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.91.124, 91.189.91.123, 2001:67c:1562::28, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.91.124|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2877227008 (2.7G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.2.0-desktop-amd64.iso’
ubuntu-20.04.2.0-desktop-amd64.iso 47%[======= ] 4.3G 2.13M/s eta 1h 02m
Cette commande téléchargera le fichier ISO d'Ubuntu dans le répertoire de travail actuel de l'utilisateur.
Reprendre le fichier partiellement téléchargé
En utilisant l'option '-c' dans la commande wget, nous pouvons reprendre notre téléchargement à partir de l'endroit où il s'est déconnecté.
[unixcop@rhel-pc ~]$ wget -c https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Télécharger des fichiers en arrière-plan
Utilisez l'option '-b' dans la commande wget pour télécharger des fichiers en arrière-plan
[unixcop@rhel-pc ~]$ wget -b https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Continuing in background, pid 2412.
Output will be written to ‘wget-log’.
[unixcop@rhel-pc ~]$
Utilisez également la commande tail pour afficher l'état du téléchargement.
[unixcop@rhel-pc ~]$ tail -f wget-log
2700K .......... .......... .......... .......... .......... 0% 85.8K 16h41m
2750K .......... .......... .......... .......... .......... 0% 90.0K 16h32m
2800K .......... .......... .......... .......... .......... 0% 78.8K 16h25m
2850K .......... .......... .......... .......... .......... 0% 189K 16h13m
2900K .......... .......... .......... .......... .......... 0% 92.4K 16h5m
2950K .......... .......... .......... .......... .......... 0% 89.7K 15h57m
3000K .......... .......... .......... .......... .......... 0% 92.8K 15h50m
3050K .......... .......... .......... .......... .......... 0% 177K 15h39m
3100K .......... .......... .......... .......... .......... 0% 91.2K 15h32m
3150K .......... .......... .......... .......... .......... 0% 96.0K 15h25m
3200K .......... .......... .......... .......... .......... 0% 79.6K 15h20m
3250K .......... .......... .......... .......... .......... 0% 199K 15h9m
3300K .......... .......... .......... .......... .......... 0% 97.7K 15h3m
3350K .......... .......... .......... .......... .......... 0% 94.6K 14h57m
3400K .......... .......... .......... .......... .......... 0% 95.8K 14h51m
3450K .......... .......... .......... .......... .......... 0% 96.0K 14h45m
3500K .......... .......... .......... .......... .......... 0% 102K 14h39m
3550K .......... .......... .......... .......... .......... 0% 153K 14h31m
3600K .......... .......... .......... .......... .......... 0% 62.1K 14h29m
3650K .......... .......... .......... .......... .......... 0% 109K 14h23m
3700K .......... .......... .......... .......... .......... 0% 83.1K 14h19m
3750K .......... .......... .......... .......... .......... 0% 118K 14h13m
3800K .......... .......... .......... .......... .......... 0% 104K 14h8m
3850K .......... .......... .......... .......... .......... 0% 112K 14h2m
etc..
Limiter la vitesse de téléchargement lors du téléchargement des fichiers
Vous pouvez limiter la vitesse de téléchargement en utilisant l'option "-limit-rate".
[unixcop@rhel-pc ~]$ wget --limit-rate=350k https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
nous avons fixé la limite de téléchargement à 350 Ko.
Télécharger plusieurs fichiers
Créez d'abord un fichier texte et ajoutez toutes les URL dans ce fichier texte comme indiqué ci-dessous :
[unixcop@rhel-pc ~]$ cat wget-download-list.txt
http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso
[unixcop@rhel-pc ~]$
Lancez maintenant :
[unixcop@rhel-pc ~]$ wget -i wget-download-list.txt
--2021-08-13 04:36:46-- http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Resolving centos.mirror.server24.net (centos.mirror.server24.net)... 217.70.144.100, 2001:1a38:144::100
Connecting to centos.mirror.server24.net (centos.mirror.server24.net)|217.70.144.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9928966144 (9.2G) [application/octet-stream]
Saving to: ‘CentOS-8.4.2105-x86_64-dvd1.iso’
CentOS-8.4.2105-x86_64-dvd1.iso 4%[== ] 964M 1.9M/s eta 3h 44m
[unixcop@rhel-pc ~]$
Augmenter les nouvelles tentatives en wget
Nous pouvons augmenter le nombre de nouvelles tentatives en utilisant l'option "-tries" dans wget. Par défaut, la commande wget réessaye 20 fois pour réussir le téléchargement.
# wget --tries=60 http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
La commande ci-dessus fera en sorte que la commande wget essaie de télécharger le fichier au maximum 60 fois.
Redirection de la sortie de la commande wget vers un fichier
Nous pouvons rediriger la sortie vers un fichier journal en utilisant l'option "-o" comme indiqué ci-dessous :
$ wget -o download_file.log http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Vous pouvez le montrer avec
# ls
# cat download_file.log
Mise en miroir d'un site Web complet avec la commande wget
Nous pouvons le faire avec :
# wget --mirror -p --convert-links -P ./<Local-Folder> website-URL
Où
- –miroir :activez les options adaptées à la mise en miroir.
- –p :télécharger tous les fichiers pour afficher correctement une page HTML donnée.
- –convertir des liens :convertir les liens dans le document pour une visualisation locale.
- -P ./Local-Dossier :enregistre tous les fichiers et répertoires dans le répertoire spécifié.
Rejeter les types de fichiers lors du téléchargement
Lorsque vous envisagez de télécharger le site Web complet, nous pouvons forcer la commande wget à ne pas télécharger les fichiers pdf, par exemple en utilisant l'option "–reject".
# wget --reject=pdf <Website-To-Be-Downloaded>
Définissez le quota de téléchargement
Wget peut arrêter le téléchargement lorsque la taille du téléchargement dépasse une certaine taille. Utilisez l'option '-Q' dans la commande wget pour définir le quota de téléchargement.
# wget -Q14m -i wget-download-list.txt
Autoriser wget à écraser les fichiers
Si nous spécifions le fichier de sortie à l'aide de l'option -o, il écrasera tout fichier existant.
wget -q http://www.example.com/filename.txt -O /path/filename.txt
Télécharger un fichier à l'aide du serveur FTP
Wget utilise le FTP anonyme pour télécharger les fichiers depuis le Web. Il ne nécessite pas de connexion FTP pour télécharger les fichiers.
# wget ftp://ftp.example.com/file.tar.gz
Téléchargement du fichier depuis un site protégé par mot de passe
# wget --ftp-user=<user-name> --ftp-password=<password> Download-URL
OR
# wget --user <user_name> --password <password> http://<url-path>/file_you_want_to_download
Une autre façon de spécifier le nom d'utilisateur et le mot de passe est dans l'URL elle-même.
Télécharger un fichier à partir d'une URL sécurisée non approuvée
Vous souhaitez télécharger un fichier à partir de ports https et souhaitez ignorer les vérifications de certificat ?
cela peut donc être accompli en utilisant l'option "–no-check-certificate"
# wget https://example.com/file.tar.gz –no-check-certificate
Exemple : Télécharger Oracle Java à partir du portail https et ignorer les vérifications de certificat
# wget --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.rpm --no-check-certificate
Téléchargement de fichiers via proxy
Nous devons d'abord définir un proxy, puis nous pouvons télécharger le fichier à partir d'Internet. Pour définir le proxy sur la ligne de commande, utilisez les variables et la commande d'exportation suivantes
# export http_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
# export https_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
# export ftp_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
Dans le cas où le nom d'utilisateur et le mot de passe sont requis pour le proxy, utilisez :
# export http_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
# export https_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
# export ftp_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
Vérifier la version de wget
Nous pouvons vérifier la version de la commande Wget comme ci-dessous
# wget –version
Conclusion
Wget a un grand nombre d'options, nous en avons couvert beaucoup.
Au fait, nous pouvons trouver plus d'options à partir de la page de manuel.
# man wget