🌐 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.
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.
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
wget est disponible via le gestionnaire de paquets Homebrew. Après avoir installé Homebrew, exécutez :
brew install wget
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.
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.
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>
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.
-O
-P
# 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
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é.
-c
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.
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).
--limit-rate
k
m
# Limiter la vitesse de téléchargement à 512 Ko/s wget <url> --limit-rate=512k
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.
-b
wget -b <url>
wget vous indiquera le nom du fichier journal (souvent wget-log). Vous pouvez surveiller la progression avec :
wget-log
tail -f wget-log
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.
-t inf
--waitretry
--timeout
wget -t inf --waitretry=3 --timeout=10 --retry-connrefused <url>
Le mode récursif permet de télécharger des parties connexes ou l'intégralité d'un site web en suivant les liens.
Ceci est l'usage le plus puissant. L'option --mirror combine plusieurs drapeaux pour créer un miroir complet, prêt à être visualisé localement.
--mirror
# 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 :
--convert-links
--page-requisites
--no-parent
Le commutateur -r active la récursivité (par défaut jusqu'à 5 niveaux de profondeur).
-r
wget -r https://en.wikipedia.org/
Utilisez l'option -l pour définir la profondeur de récursivité. inf permet une profondeur infinie.
-l
inf
# 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/
Contrôlez les fichiers téléchargés en mode récursif avec -A (accepter) ou -R (rejeter).
-A
-R
# 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
Si vous utilisez le mode récursif simple (sans --mirror), utilisez -k pour convertir les liens en liens locaux, permettant la navigation hors ligne.
-k
wget -k -r https://en.wikipedia.org/
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).
-U
# 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"
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.
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.
--spider
# 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
grep -B 301 wget.log
Découvrez nos actualités, conseils et tutoriels pour rester à jour
Inscription en cours...
Restez informé de nos dernières actualités et recevez nos meilleurs conseils !
Chargement du formulaire de devis...