Documentation technique : Debian
Documentation basée sur la distribution Debian

> > Récupération de fichiers sur un serveur (via http, https, ftp)

Récupération de fichiers sur un serveur (via http, https, ftp)

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 :

  1. 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.

  1. 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 :

  1. 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/) :

  1. 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) :

  1. wget --server-response --spider https://files.mediaspip.net/mediaspip_0_2.zip

Le retour de la commande ressemble à :

  1. Mode "spider" activé. Test de l'existence d'un fichier distant.
  2. --2016-04-10 23:56:59--  http://download1.graphhopper.com/public/photon-db-latest.tar.bz2
  3. Résolution de download1.graphhopper.com (download1.graphhopper.com)... 148.251.82.227
  4. Connexion vers download1.graphhopper.com (download1.graphhopper.com)|148.251.82.227|:80...connecté.
  5. requête HTTP transmise, en attente de la réponse...
  6.   HTTP/1.1 200 OK
  7.   Server: nginx
  8.   Date: Sun, 10 Apr 2016 21:56:59 GMT
  9.   Content-Type: application/octet-stream
  10.   Content-Length: 38052500732
  11.   Last-Modified: Sat, 09 Apr 2016 14:57:08 GMT
  12.   Connection: keep-alive
  13.   ETag: "57091844-8dc1b14fc"
  14.   Accept-Ranges: bytes
  15. Longueur: 38052500732 (35G) [application/octet-stream]
  16. Le fichier distant existe.

Télécharger

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

  1. 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/".
  • Auteur :
  • Publié le :
  • Mis à jour : 19/07/17

Aucun commentaire


Qui êtes-vous ?
[Se connecter]
Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.