Maîtriser la commande wget sous Linux

Introduction aux transferts HTTP/FTP en console

Dans l’écosystème GNU/Linux, l’utilitaire wget demeure la solution de référence pour récupérer des ressources distantes directement depuis le shell. Au-delà d’un simple appel d’URL, cet outil offre une flexibilité remarquable pour la gestion de flux réseau complexes : renommage à la volée, reprise sur coupure de liaison ou encore exécution asynchrone en tâche de fond. Ce guide passe en revue les paramètres indispensables pour fiabiliser vos scripts et vos opérations quotidiennes.

Déploiement du binaire et premier test de récupération

Avant de manipuler l’outil, assurons-nous de la disponibilité du paquet sur le système en rafraîchissant le cache APT puis en installant la version la plus récente.

Mise à jour des dépôts APT et installation du paquet wget

Afin d’éviter tout encombrement dans votre arborescence personnelle, créons un répertoire de bac à sable dédié à ces expérimentations avant de s’y positionner.

Création et bascule vers le dossier de travail wget_test

Par défaut, invoquer wget avec l’adresse d’un serveur distant rapatrie le fichier cible directement dans le dossier courant, en conservant le nom de fichier d’origine défini par le serveur.

⚙️ [Aperçu des drapeaux essentiels]

-O : Redirige le flux vers un nom de fichier précis ou une destination spécifique.
-c : Rétablit un transfert interrompu sans recommencer depuis le premier octet.
-b : Détache l’opération de la console pour la confier à un processus d’arrière-plan.
-i : Automatise le traitement par lot en lisant un fichier d’URL sources.
--limit-rate : Bride la bande passante allouée pour préserver le reste du trafic.
-q : Active le mode silencieux (idéal pour intégrer l’outil dans des scripts cron sans polluer la sortie standard).
-r : Enclenche l’aspiration récursive pour parcourir répertoires distants et arborescences web.

Exécution d’un téléchargement standard d’un fichier de test de 1 Mo

Gestion de la destination : renommer (-O) et cibler un sous-dossier (-P)

Revenons dans notre espace de manipulation (~/wget_test) pour évaluer comment contrôler le stockage des fichiers entrants.

Accès au répertoire de test

L’argument -O permet de contourner le nommage imposé par la ressource source ; nous forçons ici l’enregistrement sous l’identifiant custom_sample.dat.

Téléchargement avec renommage immédiat via le paramètre -O

Pour structurer convenablement les données collectées, mettons en place une sous-arborescence d’accueil (~/wget_test/downloads).

Initialisation du dossier downloads

Grâce au commutateur -P, il devient inutile de naviguer préalablement dans le répertoire de destination : wget y achemine directement le fichier téléchargé.

Rapatriement ciblé vers un répertoire spécifique avec le drapeau -P

Vérifions la présence des deux fichiers, leurs tailles respectives et leurs emplacements à l’aide de la commande ls -lh.

Inspection détaillée de l’arborescence et des volumes téléchargés

Tolérance aux pannes réseau : reprise de flux interrompu (-c)

Positionnons-nous à nouveau à la racine de notre répertoire d’expérimentation (~/wget_test) pour simuler un incident réseau.

Retour dans le dossier de travail

Pour reproduire artificiellement une défaillance de connectivité en plein transfert, coupons brutalement l’exécution au bout de 2 secondes à l’aide de l’utilitaire timeout.
Le processus s’arrête net, laissant un fichier partiel sur le disque local.

Simulation d’une perte de liaison prématurée avec timeout

Un coup d’œil aux propriétés du fichier 10Mb.dat via ls -lh met en évidence son état incomplet : la taille observée reste bien inférieure aux 10 mégaoctets attendus.

Constat de la troncature du fichier après interruption

Plutôt que de gaspiller du temps et de la bande passante en reprenant le flux à zéro, l’option -c (continue) négocie avec le serveur la reprise du flux à l’octet exact où l’échange a été avorté.
Ce mécanisme s’avère providentiel pour sécuriser le transfert de fichiers volumineux ou d’images ISO sur des connexions instables.

Poursuite et finalisation du transfert tronqué avec le commutateur -c

Régulation de débit (--limit-rate) et exécution asynchrone (-b)

Réintégrons notre espace de travail (~/wget_test) afin de configurer des transferts non intrusifs.

Positionnement dans l’espace de test

Sur un serveur de production ou une ligne partagée, un téléchargement effréné peut saturer le lien réseau. Le paramètre --limit-rate permet de brider la consommation de bande passante, ici fixée à 200 Ko/s (200k).

Régulation de la vitesse de téléchargement à 200 Ko par seconde

Pour les opérations de longue durée, l’option -b délègue l’exécution à un processus démon en tâche de fond.
Vous pouvez ainsi vous déconnecter ou fermer votre terminal en toute sérénité : le transfert se poursuit et l’intégralité des traces est consignée dans le fichier wget-log.

Lancement du processus de téléchargement en arrière-plan avec -b

Laissons s’écouler une courte seconde avec sleep 1 pour laisser le sous-système instancier le processus et générer le journal d’activité.

Temporisation d’une seconde pour l’initialisation du journal

Grâce à tail -n 10 wget-log, examinons les dix dernières lignes consignées afin de surveiller la poignée de main HTTP, la requête initiale et la progression du transfert détaché.

Consultation des dernières entrées du journal d’activité wget-log

Vous disposez désormais de tous les réflexes nécessaires pour exploiter wget avec méthode sous Linux, qu’il s’agisse de requêtes ponctuelles en ligne de commande ou de transferts automatisés et résilients en arrière-plan. Combinez judicieusement ces paramètres pour fluidifier vos flux de déploiement et de maintenance au quotidien.