FTP en ligne de commandes

Introduction

Une interface graphique pour réaliser des transferts de fichiers avec le protocole FTP (File Transfer Protocol) n'est pas toujours disponible notamment sous Unix. Les principales commandes utiles FTP sont récapitulées ici. Dans cette documentation mclocale et mcdistante représentent respectivement la machine locale et la machine distante.

schema ftp entre 2 machines

Ouverture et fermeture de sessions ftp

Une session ftp vers la machine distante mcdistante est déclenchée en lançant l'exécutable ftp sur la machine locale. Dans une invite de commandes DOS ou un terminal Unix/Linux :

%> ftp <hôte distant>
%> ftp mcdistanteUtilisateur (mcdistante) : sqlpac
331 User sqlpac OK. Password required
Mot de passe :*******
230-User sqlpac has group access to:  users
230 OK. Current restricted directory is /

Dès l'ouverture de la session ftp, le compte et son mot de passe doivent être saisis.

Pour ouvrir une session ftp vers une machine différente sans quitter l'exécutable ftp, utiliser la commande open.

ftp> open <hôte distant>

En cas d'erreur de saisie de mot de passe, utiliser la commande user pour s'authentifier à nouveau :

ftp> user sqlpac331 User sqlpac OK. Password required
Mot de passe :*******

La commande close ferme une session ftp sans quitter l'exécutable ftp.

ftp> close221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.

La commande quit ferme une session ftp active et quitte l'exécutable ftp.

ftp> quit

Navigation et opérations sur les machines

Navigation et opérations sur la machine locale

La commande lcd se positionne dans un répertoire sur la machine locale.

ftp> lcd Nom_repertoire 

Exemples :

ftp> lcd D:/www/tmpDossier local maintenant D:\www\tmp.
ftp> lcd /home/sybase 

La commande ! lance un exécutable sur la machine locale

ftp> ! exe

La commande lls liste le contenu d'un répertoire sur la machine locale, toutefois cette commande n'est disponible que si la machine locale est "Unix-Like".

ftp> lls [repertoire]

Navigation et opérations sur la machine distante

Navigation sur la machine distante

La commande cd navigue dans les dossiers sur la machine distante.

ftp> cd nom_repertoire
ftp> cd /www250 OK. Current directory is /www

Les commandes dir et ls listent le contenu d'un répertoire sur la machine distante. La commande dir est plus verbeuse.

ftp> ls [nom_repertoire]
ftp> dir [nom_repertoire]
ftp> ls /www.
..
config
css
images
226 3 matches total
ftp> dir /wwwdrwx---r-x    3 104780     users              10 Jul 24 21:44 config
drwx---r-x    5 104780     users               5 Apr  3  2010 css
drwx---r-x    4 104780     users               4 Mar 14  2009 images
226 3 matches total

La commande pwd affiche le répertoire courant dans lequel on se trouve sur la machine distante. À consommer sans modération pour éviter des erreurs de manipulation, surtout dans des contextes de suppression de fichiers.

ftp> pwd257 "/www" is your current location

Suppression de fichiers sur la machine distante

La commande delete supprime un ou plusieurs fichiers sur la machine distante.

ftp> delete fichier1 [fichier2...]
ftp> delete session.txt250 Deleted session.txt

Création et suppression de répertoires sur la machine distante

Pour supprimer un répertoire sur la machine distante, utiliser la commande rmdir.

ftp> rmdir nom_repertoire
ftp> rmdir sqlpac250 The directory was successfully removed

Pour créer un répertoire sur la machine distante, la commande classique mkdir est disponible avec ftp.

ftp> mkdir nom_repertoire
ftp> mkdir sqlpac257 "sqlpac" : The directory was successfully created

Transferts de fichiers

Modes de transferts de fichiers

Le mode de transferts des fichiers est très important selon qu'il s'agit de fichiers binaires (exécutables, librairies etc...) ou de simples fichiers ascii. Ainsi lors du transfert d'un exécutable, il est impératif de s'assurer que le mode de transfert approprié (binary) est actif. Deux modes de transferts de fichiers sont disponibles avec ftp :

  • ascii
  • binary

La commande type affiche le mode de transfert courant.

ftp> typeUtilisation du mode ascii pour transférer les fichiers.

Pour passer en mode binary :

ftp> binary200 TYPE is now 8-bit binary

Pour passer en mode ascii :

ftp> ascii200 TYPE is now ASCII

Réception de fichiers

Les commandes get et mget permettent respectivement de rapatrier sur la machine locale un ou plusieurs fichiers depuis la machine distante.

La commande get

Pour récupérer un fichier :

ftp> get nom_fichier

Pour récupérer un fichier avec renommage :

ftp> get nom_fichier nouveau_nom_fichier

La commande mget

Pour récupérer plusieurs fichiers :

ftp> mget fichier1 fichier2...

Il est possible d'utiliser les syntaxes tels que *.txt, *.* etc ...

Exemples :

ftp> mget *.*
ftp> mget *.sql226-File successfully transferred
226 0.011 seconds (measured here), 0.80 Mbytes per second
ftp : 9432 octets reçus en 0.03 secondes à 314.40 Ko/s.

Par défaut, lors de la réception de plusieurs fichiers, ftp demande une confirmation :

ftp> mget *.sql200 TYPE is now ASCII
mget sybase-ase-mda-sp_dba_getwe.12.5.sql? y

Pour empêcher cette demande de confirmation, aussi appelée mode interactif utiliser la commande prompt on | off. Exemple : récupération des fichiers *.sql sans demande de confirmation.

ftp> prompt off
ftp> mget *.sqlMode interactif désactivé.
ftp : 7165 octets reçus en 0.00 secondes à 7165000.00 Ko/s.

Envoi de fichiers

Les commandes put et mput permettent respectivement d'envoyer de la machine locale vers la machine distante un ou plusieurs fichiers.

La commande put

Pour envoyer un fichier :

ftp> put nom_fichier

Pour envoyer un fichier avec renommage :

ftp> put nom_fichier nouveau_nom_fichier

La commande mput

Pour envoyer plusieurs fichiers

ftp> mput fichier1 fichier2...

Comme pour la commande mget, il est possible d'utiliser les syntaxes tels que *.txt, *.* etc ... Exemples :

ftp> mput *.*
ftp> mput *.sql226-File successfully transferred
226 0.221 seconds (measured here), 30.33 Kbytes per second
ftp : 7165 octets envoyés en 0.17 secondes à 43.16 Ko/s.

Par défaut, comme pour la commande mget, lors de l'envoi de plusieurs fichiers ftp demande une confirmation pour chaque fichier. Pour supprimer le mode interactif, utiliser la commande prompt on | off. Exemple : envoi des fichiers *.sql sans demande de confirmation.

ftp> prompt off
ftp > mput *.sqlMode interactif désactivé.
226-File successfully transferred
226 0.213 seconds (measured here), 31.39 Kbytes per second
ftp : 7165 octets envoyés en 0.16 secondes à 43.96 Ko/s.

Aides sur les commandes FTP

Pour obtenir de l'aide sur les commandes ftp :

ftp> ?
ftp> help

Pour obtenir de l'aide sur une commande ftp en particulier :

ftp> ? commande
ftp> help commande