🌐 Introduction : L'outil en ligne de commande wget
est indispensable pour tout administrateur système ou développeur. Il permet de télécharger des fichiers via les protocoles HTTP, HTTPS et FTP. Cet article explore les commandes courantes et avancées de wget
, de la simple reprise d'un téléchargement interrompu à la création d'un miroir complet d'un site web.
📋 Table des Matières
- Installation de Wget
- Téléchargements Basiques et Avancés
- Télécharger un Fichier Unique (HTTP/HTTPS)
- Télécharger des Fichiers via FTP (Anonyme ou Authentifié)
- Personnaliser le Nom et le Répertoire de Sortie
- Reprendre des Téléchargements Interrompus
- Limiter les Vitesses de Téléchargement
- Télécharger des Fichiers en Arrière-plan
- Gestion des Mauvaises Connexions Réseau
- Création d'un Miroir de Site Web (Mode Récursif)
- Options Avancées et Contournement
1. Installation de Wget
La plupart des systèmes Linux récents incluent wget
par défaut. Pour vérifier son installation, tapez wget
dans votre terminal. S'il n'est pas trouvé, suivez les instructions ci-dessous pour l'installer sur votre plateforme.
1.1. Sur Linux (Debian/Ubuntu et CentOS/RHEL)
Utilisez le gestionnaire de paquets approprié pour votre distribution :
# Pour les systèmes basés sur Ubuntu/Debian :
sudo apt update
sudo apt install wget
# Pour les systèmes CentOS/RHEL :
sudo yum install wget
1.2. Sur Mac OS
wget
est disponible via le gestionnaire de paquets Homebrew. Après avoir installé Homebrew, exécutez :
brew install wget
1.3. Sur Windows
Utilisez msys2, un projet qui fournit des outils de ligne de commande de type Unix. Après avoir installé msys2, ouvrez le shell MSYS2 et exécutez :
pacman -S wget
Vous pourrez ensuite utiliser la commande wget
via ce shell.
2. Téléchargements Basiques et Avancés
2.1. Télécharger un Fichier Unique (HTTP/HTTPS)
Fournissez simplement l'URL du fichier. wget
déduira le nom du fichier à partir de l'URL et l'enregistrera dans votre répertoire actuel.
wget http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso
# Pour plusieurs fichiers à la fois :
wget <url_1> <url_2>
Note : wget
ne fonctionne que si l'URL pointe directement vers le fichier. Les liens nécessitant une authentification seront traités plus tard.
2.2. Télécharger des Fichiers via FTP (Anonyme ou Authentifié)
Le fonctionnement est similaire pour le protocole FTP :
# Téléchargement FTP anonyme
wget ftp://ftp.example.com/ubuntu/ubuntu-18.04-desktop-amd64.iso
# Téléchargement avec nom d'utilisateur et mot de passe
wget --ftp-user=utilisateur --ftp-password=motdepasse <url_ftp>
2.3. Personnaliser le Nom et le Répertoire de Sortie
Utilisez le commutateur -O
(majuscule) pour spécifier le nom du fichier de sortie ou un chemin complet. Utilisez -P
(majuscule) pour spécifier le répertoire de destination, en laissant wget
déterminer le nom du fichier.
# Enregistrer sous un nouveau nom de fichier (Ubuntu.iso)
wget <url> -O Ubuntu.iso
# Enregistrer dans un répertoire spécifique, en gardant le nom d'origine
wget <url> -P /media/sdb1/Software
2.4. Reprendre des Téléchargements Interrompus
Si un téléchargement échoue (mauvaise connexion, arrêt manuel, etc.), utilisez l'option -c
pour le reprendre là où il s'est arrêté.
wget -c <url>
# Reprendre un téléchargement dans un répertoire personnalisé
wget -c <url> -O <chemin_vers_fichier_téléchargé>
Attention : Assurez-vous que l'URL est correcte lors de la reprise. De plus, tous les serveurs ne supportent pas la reprise de téléchargement.
2.5. Limiter les Vitesses de Téléchargement
Contrôlez la bande passante utilisée par wget
avec --limit-rate
pour ne pas saturer votre connexion. Utilisez les suffixes k
(Ko/s) ou m
(Mo/s).
# Limiter la vitesse de téléchargement à 512 Ko/s
wget <url> --limit-rate=512k
2.6. Télécharger des Fichiers en Arrière-plan
Utilisez l'option -b
pour exécuter le téléchargement en arrière-plan, ce qui est idéal lors d'une session SSH.
wget -b <url>
wget
vous indiquera le nom du fichier journal (souvent wget-log
). Vous pouvez surveiller la progression avec :
tail -f wget-log
2.7. Gestion des Mauvaises Connexions Réseau
Sur des réseaux instables, vous pouvez demander à wget
de réessayer indéfiniment et d'augmenter les délais. Les options -t inf
(essais infinis), --waitretry
(délai entre les essais), et --timeout
(délai d'expiration) sont utiles.
wget -t inf --waitretry=3 --timeout=10 --retry-connrefused <url>
3. Création d'un Miroir de Site Web (Mode Récursif)
Le mode récursif permet de télécharger des parties connexes ou l'intégralité d'un site web en suivant les liens.
3.1. Créer une Copie Hors Ligne Complète
Ceci est l'usage le plus puissant. L'option --mirror
combine plusieurs drapeaux pour créer un miroir complet, prêt à être visualisé localement.
# Commande détaillée
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org
# Version raccourcie de la même commande
wget -mkEpnp http://example.org
Détail des Options clés :
--mirror
(-m) : Active le téléchargement récursif, la gestion des horodatages et plus encore.--convert-links
(-k) : Convertit les liens absolus en liens relatifs pour une navigation hors ligne.--page-requisites
(-p) : Télécharge tous les éléments nécessaires (CSS, images, JS) pour afficher la page correctement.--no-parent
(-np) : Empêche de remonter au répertoire parent lors de la récursivité, limitant le téléchargement à une partie du site.
3.2. Téléchargement Récursif Simple
Le commutateur -r
active la récursivité (par défaut jusqu'à 5 niveaux de profondeur).
wget -r https://en.wikipedia.org/
3.3. Contrôler la Profondeur de Récursivité
Utilisez l'option -l
pour définir la profondeur de récursivité. inf
permet une profondeur infinie.
# Limiter la profondeur à 7 niveaux
wget -r -l 7 https://en.wikipedia.org/
# Téléchargement récursif illimité
wget -r -l inf https://en.wikipedia.org/
3.4. Filtrer par Type de Fichier (Accepter/Rejeter)
Contrôlez les fichiers téléchargés en mode récursif avec -A
(accepter) ou -R
(rejeter).
# Télécharger uniquement les images PNG, JPG et JPEG
wget -r https://en.wikipedia.org/ -A png,jpg,jpeg
# Télécharger tous les fichiers sauf les documents PDF
wget -r https://en.wikipedia.org/ -R pdf
3.5. Conversion des Liens pour Utilisation Hors Ligne
Si vous utilisez le mode récursif simple (sans --mirror
), utilisez -k
pour convertir les liens en liens locaux, permettant la navigation hors ligne.
wget -k -r https://en.wikipedia.org/
4. Options Avancées et Contournement
4.1. Définir les En-têtes et l'Agent Utilisateur
Certains serveurs bloquent les requêtes contenant l'agent utilisateur "wget". Contournez cela avec -U
pour usurper un autre agent utilisateur (par exemple, celui de votre navigateur).
# Définir un Agent Utilisateur personnalisé
wget <url> -U "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/66.0.3359.181 Safari/537.36"
# Envoyer un en-tête HTTP personnalisé
wget <url> --header "X-Foo: 123"
4.2. Télécharger des Fichiers Protégés par Connexion
Pour télécharger des fichiers nécessitant une session active (après connexion), vous devez transmettre les **cookies** et **en-têtes de session** à wget
. Des extensions de navigateur comme **CurlWget** (Chrome) ou **cliget** (Firefox) peuvent générer la commande wget
complète avec les cookies nécessaires, facilitant le téléchargement de fichiers protégés sur des serveurs sans tête.
4.3. Mode "Araignée" (Spider) pour la Vérification des Liens
L'option --spider
permet à wget
de parcourir un site web de manière récursive sans télécharger les fichiers. C'est parfait pour rechercher des liens brisés ou des erreurs de statut HTTP.
# Activer le mode spider de manière récursive
wget --spider -r https://example.com/
# Enregistrer le journal des résultats
wget --spider -r https://example.com -o wget.log
Vous pouvez ensuite utiliser grep
pour analyser le journal, par exemple pour trouver les redirections 301 :
grep -B 301 wget.log