LFTP - un client FTP textuel amélioré
Publi� le 19 février 2007
Cr�� le 10 novembre 2006

MAJ : Malheureusement, la version disponible dans les paquets debian est bugguée. Impossible d'utiliser la commande mirror -R pourtant bien pratique pour faire un upload d'une arborescence de répertoire et de ses fichiers. La commande bloque et sort en core dump après un certain temps.

Si vous cherchez un client ftp en ligne de commande correct, laissez tomber ftp. Tout ce que vous pourrez faire, c'est récupérer ou déposer un fichier sur le serveur. Oui mais, comment faîtes-vous pour de multiples fichiers, voire une arborescence complète ? A ce moment là on se tourne vers [ !lftp] qui est un client évolué. Faisons le tour du client et voyons les fonctionnalités supplémentaires. Et pour commencer :


$ lftp
lftp
:~> help

       !<commande_de_shell>                (commandes)
       alias [<nom> [<valeur>]]            anon
       bookmark [SOUS-COMMANDE]            cache [SOUS-COMMANDE]
       cat [-b] <fichiers>                 cd <repd>
       chmod [OPTS] mode fichier...        close [-a]
       [re]cls [opts] [chemin/][expression] debug [<niveau>|off] [-o <fichier>]        du [options] <reps>                 exit [<code>|bg]
       get [OPTS] <fichierd> -o <fichierl>] glob [OPTS] <cmd> <args>
       help [<cmd>]                        historique: -w fichier|-r fichier|-c|-l [nb]
       jobs [-v]                           kill all|<num>
       lcd <repl>                          lftp [OPTS] <site>
       ls [<args>]                         mget [OPTS] <fichiers>
       mirror [OPTS] [distant [local]]     mkdir [-p] <reps>
       module nom [args]                   more <fichiers>
       mput [OPTS] <fichiers>              mrm <fichiers>
       mv <fichier1> <fichier2>            [re]nlist [<args>]
       open [OPTS] <site>                  pget [OPTS] <fichierd> [-o <fichierl>]
       put [OPTS] <fichierl> [-o <fichierd>] pwd [-p]
       queue [OPTS] [<cmd>]                quote <cmd>
       repeat [delay] [command]            rm [-r] [-f] <fichiers>
       rmdir [-f] <reps>                   scache [<num_session>]
       set [OPT] [<var> [<val>]]           site <cmd_site>
       source <fichier>                    user <user|URL> [<pass>]
       version                             wait [<num_travail>]
       zcat <fichiers>                     zmore <fichiers>

Tout de suite çà calme ... ;-)

Voici comment on se connecte.


lftp
:~> open ftp.serveur.fr
lftp
:~> user nomdutilisateur motdepasse

On voit immédiatement que l'on a accès à deux fonctions indispensable [1] :

-  mget
-  mput
-  bookmark : un gestionnaire simple de bookmark
-  cache : un système de cache de listings
-  plusieurs commandes pour liste les répertoires dont une (cls) qui gère les expressions régulières !
-  pget : pour accélérer le téléchargement d'un gros fichier [2]
-  zcat, zmore : équivalent des commandes de même nom du système d'exploitation
-  mirror : rend possible le mirroring [3]

On peut même étendre les fonctionnalités grâce à des modules externes que l'on charge à l'aide de la commande "module" !

Voyons les options de mput.


lftp
:~> help mput
Usage
: mput [OPTS] <fichiers>
Émet les fichiers après extension des jokers
-c  continue (reput)
-
d  créé des répertoires du même nom que les fichiers et met les fichiers
     dans ces répertoires au lieu du répertoire en cours
-E  efface le fichier local après un transfert réussi (dangereux).
-
a  utilise le mode ascii (par défaut: mode binaire
-O <base> spécifie le répertoire de base ou l'URL où les fichiers doivent
     être placés.

Les options :

-  -c : pour lancer plusieurs téléchargements en même temps
-  les autres sont explicites

Les options de mget sont identiques.

L'option mirror est des plus intéressantes.


lftp
:~> help mirror
Usage
: mirror [OPTS] [distant [local]]

Duplique le répertoire distant vers le répertoire local

-c, --continue         continue un travail de duplication, si possible
-e, --delete           efface les fichiers non présents sur le site
-s, --allow-suid       duplique aussi les bits suid/sgid
    
--allow-chown      tente de spécifier aussi les propriétaires et les
                        groupes des fichiers
    
--ignore-time      ignore l'heure pour décider ou non du téléchargement
-n, --only-newer       télécharge uniquement les nouveaux fichiers
-r, --no-recursion     ne rentre pas dans les sous-répertoires
-p, --no-perms         ne définit pas les permissions de fichier
     --no-umask         n'
applique pas umask aux modes de fichier
-R, --reverse          duplication inversée (émet les fichiers)
-
L, --dereference      télécharge les liens symboliques comme des fichiers
-N, --newer-than FICH  télécharge uniquement les fichiers plus récents que
                        le fichier spécifié par FICH
-P, --parallel[=N]     télécharge N fichiers en parallèle
-i RX, --include RX    inclut les fichiers définis par RX
-x RX, --exclude RX    exclut les fichiers définis par RX
                        RX est une expression régulière étendue
-v, --verbose[=N]      mode bavard
    
--use-cache        utilise les listes de répertoires en cache

Lorsque vous utilisez
-R, le premier répertoire est local et le second est
distant
. Si le second répertoire est omis, le nom de base du premier est
utilisé
. Si les deux répertoires sont omis, les répertoires local et
distants en cours sont utilisés
.

On remarque que c'est le même principe que le programme [ !ftpcopy]. On peut donc :

-  -e : effacer les fichiers qui ne sont plus sur le serveur
-  -n : ne télécharger les fichiers que s'ils ont été modifiés
-  -P : télécharger plusieurs fichiers en même temps
-  -R : cette option est encore plus intéressante puisque qu'elle permet de faire l'inverse ; déposer les fichiers.

Après çà, je pense que vous jeterez ftp à la poubelle !


[1] m pour multiple

[2] C'est le même principe que les logiciels de téléchargement. Le fichier est découpé en plusieurs morceaux et tous les morceaux sont téléchargés en même temps. Le fichier final est ensuite reconstitué.

[3] synchronisation entre arborescences de fichiers

Forum de l'article

# 694 LFTP - un client FTP textuel amélioré 15 mars 2008, par kate

Tiens c'est marrant... j'ai presque le même : http://aptgetinstall.free.fr/index.php ?2008/01/04/3-lftp-meilleur-que-ncftp

et idem pour ffmpeg -) http://aptgetinstall.free.fr/index.php ?2008/03/15/30-ffmpeg-ameliorer-la-version-debian

Poster un message