Deux logiciels permettent de récupérer rapidement des fichiers sur une machine (serveur ou non) via les protocoles http
ou ftp
: wget (installé par défaut sur les distributions Debian) et curl
wget
Pour connaître l’ensemble des options du logiciel, il est comme toujours recommandé d’utiliser man
comme ceci :
- man wget
Voici quelques commandes complètes à usages fréquents.
Récupération rapide d’un fichier sur internet (protocole http)
Cette commande va récupérer l’archive zip de la distribution SPIP MediaSPIP disponible sur cette page.
- wget https://files.mediaspip.net/mediaspip_0_2.zip
Cette commande créera tout simplement un fichier mediaspip_0_2.zip
à l’endroit du système de fichier où la commande est lancée.
Si vous souhaitez télécharger le même fichier tout en le renommant en mediaspip_distribution.zip
par exemple, il vous faudra utiliser l’option -O
:
- wget https://files.mediaspip.net/mediaspip_0_2.zip -O mediaspip_distribution.zip
Si vous souhaitez simplement changer le répertoire où sera stocké le fichier, il vous faudra utiliser l’option -P
(ici, on va l’enregistrer dans notre répertoire home en utilisant son raccourcis ~
mais cela aurait pu être dans un autre répertoire tel que /var/www/
) :
- wget https://files.mediaspip.net/mediaspip_0_2.zip -P ~
Récupération des entêtes d’un fichier via http
La commande suivante n’affichera dans la console que les entêtes du fichier ou de la page pointée (via http) :
- wget --server-response --spider https://files.mediaspip.net/mediaspip_0_2.zip
Le retour de la commande ressemble à :
- Mode "spider" activé. Test de l'existence d'un fichier distant.
- --2016-04-10 23:56:59-- http://download1.graphhopper.com/public/photon-db-latest.tar.bz2
- Résolution de download1.graphhopper.com (download1.graphhopper.com)... 148.251.82.227
- Connexion vers download1.graphhopper.com (download1.graphhopper.com)|148.251.82.227|:80...connecté.
- requête HTTP transmise, en attente de la réponse...
- HTTP/1.1 200 OK
- Server: nginx
- Date: Sun, 10 Apr 2016 21:56:59 GMT
- Content-Type: application/octet-stream
- Content-Length: 38052500732
- Last-Modified: Sat, 09 Apr 2016 14:57:08 GMT
- Connection: keep-alive
- ETag: "57091844-8dc1b14fc"
- Accept-Ranges: bytes
- Longueur: 38052500732 (35G) [application/octet-stream]
- Le fichier distant existe.
Explication des options utilisées :
-
--spider
, avec cette option, wget ne télécharge rien, il vérifie seulement l’existence réelle de cette page ou du fichier ; -
--server-response
(ou-S
) affiche les entêtes HTTP ou FTP complètes de la page ou du fichier ;
Récupération du contenu d’un répertoire FTP de manière récursive
- wget -r -l 0 ftp://www.domaine.example/chemin/* --ftp-user=nom_user --ftp-password=password -nH --cut-dirs=1
Explication des options utilisées :
- On souhaite récupérer le contenu du répertoire "chemin" sur le ftp domaine.example => ftp://www.domaine.example/chemin/*
- On souhaite le faire récursivement => option "
-r
" - On ne limite pas la récursivité (infini) => option "
-l 0
" - Le nom de l’utilisateur ftp est "nom_user" => option "
--ftp-user=nom_user
" - Le mot de passe de l’utilisateur est "password" => option "
--ftp-password=password
" - Nous souhaitons récupérer le contenu de ce répertoire dans le répertoire en cours sans créer de hiérarchie supplémentaire. Par défaut wget déposera les fichiers dans un sous-répertoire du répertoire courant "
www.domaine.example/chemin/
" ce que nous ne souhaitons pas. Pour ce faire on utilise l’option "-nh" qui s’occupe de ne pas créer le "www.domaine.example" puis l’option "--cuts-dirs=1
" qui elle, s’occupe du répertoire "chemin". Si votre chemin original est composé de plusieurs répertoire, vous devrez modifier cette option avec le nombre total de répertoires, par exemple "--cuts-dirs=3
" si votre chemin est du genre "chemin/du/fichier/
".