🌐 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

  1. Installation de Wget
  2. Téléchargements Basiques et Avancés
  3. Création d'un Miroir de Site Web (Mode Récursif)
  4. 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

Auteur: Mvondo bekey anael

ceo | founder
COMPETENCES
  • • Maitrise des environnements Unix, Linux, Mac, Windows, IOS et Android
  • • Programmation Orientée Objet : Python, Ruby, C++, Java, PHP, Js
  • • Certifier linux Lpi (101, 102, 202, 203, 301, 303)
  • • Certifier Adwords Professional , Certifier Ceh (6, 7, 8, 9, 10, 11)
  • • Maîtrise parfaite de : Docker, VMware sphère, Microsoft Hyper, Citrix, Virtual box,promox vm