Téléchargement non interactif sur Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Bienvenue dans ce laboratoire de base sur le téléchargement non interactif sous Linux. La capacité à télécharger des fichiers efficacement depuis la ligne de commande est une compétence essentielle pour tout utilisateur Linux ou administrateur système.

Dans ce laboratoire, vous apprendrez à utiliser la commande wget, un outil puissant qui vous permet de télécharger des fichiers depuis Internet sans intervention manuelle. Cet outil est particulièrement utile lorsque vous devez télécharger plusieurs fichiers, effectuer des téléchargements en arrière - plan ou automatiser des tâches de téléchargement dans des scripts.

À la fin de ce laboratoire, vous comprendrez comment utiliser wget pour télécharger des fichiers individuels, renommer les téléchargements et télécharger plusieurs fichiers à partir d'une liste - tout cela depuis la ligne de commande, sans interfaces graphiques ni invites interactives.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 100%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Configuration de l'environnement et téléchargement de base

Dans cette première étape, nous allons créer un répertoire de travail et apprendre à télécharger un seul fichier à l'aide de la commande wget.

Création d'un répertoire de travail

Commençons par créer un répertoire où nous allons stocker tous nos fichiers téléchargés. Cela nous permet de garder nos fichiers organisés en un seul endroit.

Accédez au répertoire du projet et créez un nouveau répertoire appelé download_resources :

cd ~/project
mkdir download_resources

Comprendre la commande wget

La commande wget est un outil permettant de télécharger des fichiers depuis le web de manière non interactive. Sa syntaxe de base est la suivante :

wget [options] [URL]

Votre premier téléchargement

Maintenant, utilisons wget pour télécharger un fichier. Nous allons télécharger un paquet de distribution Python comme fichier de test :

cd ~/project/download_resources
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

Lorsque vous exécutez cette commande, vous devriez voir une sortie similaire à celle - ci :

--2024-01-10 10:14:51--  https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22540566 (21M) [application/octet-stream]
Saving to: 'Python-3.6.1.tgz'

Python-3.6.1.tgz                  100%[=============================================================>]  21.50M  26.8MB/s    in 0.8s

2024-01-10 10:14:52 (26.8 MB/s) - 'Python-3.6.1.tgz' saved [22540566/22540566]

Cette sortie montre :

  • L'URL accédée
  • L'adresse IP du serveur
  • La réponse HTTP (200 OK signifie que le téléchargement a réussi)
  • La taille du fichier (environ 21 Mo)
  • La progression du téléchargement
  • La vitesse et le temps de téléchargement
  • La confirmation que le fichier a été enregistré avec son nom d'origine

Vérifions que le fichier a été téléchargé correctement :

ls -lh

Vous devriez voir le fichier Python-3.6.1.tgz dans le répertoire avec sa taille correspondante.

Téléchargement avec des noms de fichiers personnalisés

Dans cette étape, nous allons explorer comment télécharger un fichier et le sauvegarder avec un nom de fichier personnalisé au lieu d'utiliser le nom par défaut issu de l'URL.

Utilisation de l'option -O

L'option -O (la lettre majuscule O, pas le zéro) vous permet de spécifier le nom du fichier de sortie. Cela est utile lorsque :

  • Vous souhaitez un nom de fichier plus descriptif
  • Le nom de fichier par défaut issu de l'URL est trop complexe
  • Vous téléchargez plusieurs versions de la même ressource

Essayons de télécharger un autre paquet Python, mais cette fois-ci nous allons le sauvegarder avec un nom personnalisé :

cd ~/project/download_resources
wget -O CustomPython.tgz https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

Dans cette commande :

  • -O CustomPython.tgz indique à wget de sauvegarder le fichier sous le nom CustomPython.tgz
  • Le fichier sera téléchargé depuis l'URL spécifiée mais sauvegardé avec notre nom personnalisé

La sortie sera similaire à celle précédente, mais remarquez que la ligne "Saving to" montre maintenant notre nom de fichier personnalisé :

--2024-01-10 10:20:51--  https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22676538 (22M) [application/octet-stream]
Saving to: 'CustomPython.tgz'

CustomPython.tgz                  100%[=============================================================>]  21.63M  25.9MB/s    in 0.8s

2024-01-10 10:20:52 (25.9 MB/s) - 'CustomPython.tgz' saved [22676538/22676538]

Vérifions que notre fichier a été téléchargé avec le nom personnalisé :

ls -lh

Vous devriez maintenant voir à la fois le fichier original Python-3.6.1.tgz et votre nouveau fichier CustomPython.tgz dans le répertoire.

Autres options utiles

Pendant que nous apprenons les options de wget, en voici quelques autres utiles :

  • -q (quiet) : Supprime la sortie, utile pour les scripts
  • -c (continue) : Reprend le téléchargement d'un fichier partiellement téléchargé
  • --limit-rate=1m : Limite la vitesse de téléchargement (par exemple, à 1 mégaoctet par seconde)

Par exemple, pour télécharger silencieusement avec un nom personnalisé :

wget -q -O PythonQuiet.tgz https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

Cette commande n'affichera aucune sortie, mais le fichier sera téléchargé. Vous pouvez le vérifier avec :

ls -lh

Vous devriez maintenant voir le fichier PythonQuiet.tgz également dans votre répertoire.

Téléchargement de plusieurs fichiers à partir d'une liste

Dans les scénarios réels, vous avez souvent besoin de télécharger plusieurs fichiers. Taper manuellement chaque commande wget serait inefficace. Heureusement, wget peut télécharger plusieurs fichiers à partir d'une liste, ce qui est parfait pour l'automatisation.

Création d'un fichier contenant les URLs

Tout d'abord, créons un fichier texte contenant les URLs des fichiers que nous souhaitons télécharger :

cd ~/project/download_resources
echo "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz" > download_list.txt
echo "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz" >> download_list.txt
echo "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz" >> download_list.txt

Dans ces commandes :

  • La première commande echo crée un nouveau fichier appelé download_list.txt et ajoute la première URL
  • Les commandes echo suivantes ajoutent des URLs supplémentaires au fichier en utilisant >> (double redirection)

Vérifions le contenu de notre fichier pour nous assurer qu'il est correct :

cat download_list.txt

Vous devriez voir trois URLs, chacune sur sa propre ligne :

https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

Utilisation de wget avec un fichier d'entrée

Maintenant, nous pouvons utiliser l'option -i avec wget pour lire les URLs de notre fichier et télécharger tous les fichiers :

wget -i download_list.txt

Cette commande indique à wget de lire les URLs de download_list.txt et de télécharger chaque fichier séquentiellement. Vous verrez une sortie pour chaque téléchargement, similaire à celle obtenue lors du téléchargement d'un seul fichier :

--2024-01-10 10:30:51--  https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22808518 (22M) [application/octet-stream]
Saving to: 'Python-3.7.0.tgz'

Python-3.7.0.tgz                  100%[=============================================================>]  21.75M  25.9MB/s    in 0.8s

2024-01-10 10:30:52 (25.9 MB/s) - 'Python-3.7.0.tgz' saved [22808518/22808518]

--2024-01-10 10:30:52--  https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
...

Vérification des fichiers téléchargés

Une fois les téléchargements terminés, vérifions que tous les fichiers ont été téléchargés correctement :

ls -lh Python-3.7.*

Vous devriez voir les trois fichiers Python 3.7.x que nous avons téléchargés à partir de la liste :

-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.0.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.1.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:31 Python-3.7.2.tgz

Création d'un script de téléchargement par lot

Pour une utilisation future, créons un simple script shell qui peut télécharger des fichiers à partir d'une liste. Cela montre comment wget peut être utilisé dans l'automatisation :

cd ~/project/download_resources
nano batch_download.sh

Entrez le contenu suivant dans le fichier :

#!/bin/bash
## Un simple script pour télécharger des fichiers à partir d'une liste
if [ -f "$1" ]; then
  echo "Téléchargement des fichiers à partir de la liste : $1"
  wget -i "$1"
else
  echo "Erreur : Le fichier $1 n'a pas été trouvé"
  exit 1
fi

Enregistrez le fichier en appuyant sur Ctrl+O, puis Entrée, et quittez avec Ctrl+X.

Rendez le script exécutable :

chmod +x batch_download.sh

Maintenant, vous pouvez utiliser ce script pour télécharger des fichiers à partir de n'importe quelle liste à l'avenir :

./batch_download.sh download_list.txt

Cette commande ferait la même chose que notre précédente commande wget -i download_list.txt, mais elle est encapsulée dans un script que vous pouvez réutiliser.

Résumé

Dans ce laboratoire, vous avez appris à utiliser la commande wget pour le téléchargement non interactif sous Linux. Vous maîtrisez désormais les compétences suivantes :

  • Télécharger des fichiers individuels en utilisant les commandes de base de wget
  • Sauvegarder les fichiers téléchargés avec des noms personnalisés en utilisant l'option -O
  • Créer une liste d'URL et télécharger plusieurs fichiers en une seule fois en utilisant l'option -i
  • Créer des scripts d'automatisation simples pour le téléchargement par lot

Ces compétences sont précieuses pour les administrateurs système, les développeurs et tout utilisateur Linux qui a besoin de télécharger des fichiers efficacement depuis la ligne de commande. Le téléchargement non interactif est particulièrement utile pour l'automatisation, la gestion de serveurs distants et les situations où les interfaces graphiques ne sont pas disponibles.

Certaines fonctionnalités supplémentaires de wget que vous pouvez explorer par vous-même incluent :

  • Le téléchargement récursif avec -r pour la création de miroirs de sites web
  • Le téléchargement en arrière-plan avec -b pour les téléchargements longs
  • L'utilisation de l'authentification avec --user et --password pour les ressources protégées
  • La définition de délais d'attente, de tentatives de reconnexion et d'autres paramètres de connexion

Grâce à ces fonctionnalités, vous pouvez gérer efficacement une grande variété de scénarios de téléchargement depuis la ligne de commande Linux.