IV. Le protocol FTP

Par Hugo ETIEVANT


  1. Introduction
  2. Exemple typique de session ftp (ftp)
  3. Résumé des commandes

Introduction

Le protocol FTP permet le transfert de fichiers d'une machine locale (votre ordinateur) vers une machine distante (souvent votre hébergeur de page perso ou un serveur quelconque). La commande ftp du système Unix permet d'utiliser le protocol du même nom.

Une session FTP commence généralement par le transfert (sans cryptage) du login et mot de passe de l'utilisateur. Le serveur ouvre deux sockets de transfert : une pour les commandes et une autre pour les données (fichiers transférés).

Il existe des cas ou aucun mot de passe n'est nécessaire : pour les sites publiques pour le libre téléchargement.


Exemple typique de session ftp (ftp)

Voici maintenant la démarche à suivre pour faire du FTP sous Unix.

Il vous faut lancer le module FTP par la commande ftp, vous connecter à un serveur distant avec open, spécifier votre login avec user et votre mot de passe par pass.

Exemple :
ftp
open multimania.com
user cyberzoide
pass ********

Ou bien spécifier en paramètre à la commande ftp l'adresse du serveur distant qui vous demandera votre login et mot de passe.

Exemple : ftp ftp.multimania.com

Pour télécharger un fichier distant et le stocker sous un autre nom sur votre machine locale : get distant-file local-file. Pour télécharger simplement un fichier, pas besoin de spécifier un nouveau nom : get disant-file.

Même chose pour envoyer un fichier de votre machine local vers le serveur : put local-file distant-file. Pour l'envoyé simplement : put local-file.

Pour utiliser les méta-caractères dans les noms de fichiers, il faut utiliser les commandes mget et mput.

Exemples :
get index.phpl
get index.phpl index.bak
put photo3.jpg
put cv.pdf cvitae.pdf
put logo.gif images/logo.gif
mget *.wav
mput *.gif ../images

Attention il vous faut garder en mémoire le répertoire courant local en plus du répertoire courant distant. Affichez le répertoire courant par les commandes pwd ou cd . pour la machine distante et lcd . pour la machine locale.

Exemple réel de session :

$ ftp ftp.multimania.com
Connected to ftp.multimania.com.
220 hop.multimania.net FTP server ready.
Name (ftp.multimania.com:h-etie00): cyberzoide
331 Password required for cyberzoide.
Password:*******
230 Bienvenue sur le serveur ftp de MultiMania.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/" is current directory.
ftp> cd images
250 CWD command successful.
ftp> pwd
257 "/images" is current directory.
ftp> lcd .
Local directory now /home/h-etie00
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
.
..
aide.gif
awards.gif
cadre.gif
cyber.gif
space.gif
226 Transfer complete.
ftp> get aide.gif
200 PORT command successful.
150 Opening BINARY mode data connection for off.gif (44 bytes).
226 Transfer complete.
44 bytes received in 0.00 seconds (9.91 Kbytes/s)
ftp> mget a*.gif
mget aide.gif? y
200 PORT command successful.
150 Opening BINARY mode data connection for aide.gif (601 bytes).
226 Transfer complete.
601 bytes received in 0.03 seconds (17.52 Kbytes/s)
mget awards.gif? y
200 PORT command successful.
150 Opening BINARY mode data connection for awards.gif (601 bytes).
226 Transfer complete.
601 bytes received in 0.01 seconds (91.18 Kbytes/s)
ftp> disconnect
221 Goodbye.
ftp> bye
$

Résumé des commandes

CommandeDescription
openEtablit une connection avec un serveur ftp.
open ftp.multimania.com
userIdentifie le login.
user cyberzoide
passEnvoye le mot de passe.
pass ********
cdChange de répertoire dans la machine distante.
cd data
lcdChange de répertoire dans la machine locale.
lcd unix/images
mkdirCrée un répertoire dans la machine distante.
mkdir doc
rmdirSupprime un répertoire dans la machine distante.
rm doc
asciiSélectionne le mode de transfert Ascii (par défaut).
ascii
binSélectionne le mode de transfert binaire.
bin
binarySynonyme de bin.
binary
imageSynonyme de bin.
image
getTélécharge un fichier de la machine distante vers la machine locale.
get unix.phpl ../unix.bak
mgetMême chose que get mais interprète les méta-caractères.
mget *.gif
recvSynonyme de get.
 
regetEquivalent de get mais ici le transfert est reprit à la fin du fichier, pratique pour reprendre un téléchargement précédemment interrompu.
 
newerEquivalent à get mais télécharge le fichier seulement s'il est plus récent que celui sur la machine locale.
newer index.phpl
putEnvoye un fichier de la machine locale vers la machine distante.
put index.phpl
sendSynonyme de la commande put.
 
mputMême chose que put mais interprète les méta-caractères.
mput *.php
deleteSupprime un fichier de la machine distante.
delete emploi/cv.pdf
mdeleteMême chose que delete mais interprète les méta-caractères.
mdelete images/*.jpg
renameRenomme un fichier distant.
rename tp6.c chess.c
sizeAffiche la taille d'un fichier distant.
size menu.jpg
systemAffiche les informations sur le système d'exploitation du serveur distant.
system
typeActive le type de transfet spécifié (ascii/binary). Si aucun n'est passé en paramètre, affiche celui actif.
type binary
verboseActive le mode verbeux.
verbose
bellActive le signal sonor marquant la fin de tout transfert de fichiers.
bell
helpAffiche l'aide de la commande ftp.
help
lsAffiche la liste des fichiers et répertoires distants.
ls
pwdAffiche le répertoire distant courant.
pwd
idleModifie le temps de mort autorisé par le serveur distant (en secondes). Si aucun paramètre n'est passé, affiche la valeur précédemment active. Passé ce temps mort d'inactivité, le serveur distant met fin automatiquement à la connection.
idle 60
remotehelpAffiche l'aide du serveur sur la commande passée en paramètre ou un message d'information si aucun paramètre n'est spécifié.
remotehelp recv
statusAffiche l'état actuel de la commande ftp.
status
quitMet fin à la connection et quitte la commande ftp.
quit
byeSynonyme de quit.
bye
closeMet fin à la connection ftp.
close
disconnectSynonyme de close.
disconnect