{{tag>ftp}}
----
====== Client FTP : lftp ======
===== Introduction =====
Lftp est un client FTP permettant facilement en ligne de commande de faire des transferts de fichiers (par exemple pour mettre à jour votre site Internet modifié localement ou pour faire une sauvegarde sur votre ordinateur).
===== Installation =====
En installant le paquet lftp via synaptic ou directement en cliquant sur [[apt://lftp|lftp]]
===== Mise à jour de votre site Internet modifié localement =====
Pour mettre à jour votre site Internet à partir de votre site en local, il faut utiliser la commande suivante :
lftp ftp://identifiant:mot_de_passe@site_de_connexion -e "mirror -e -R -x dossier_ignoré -x dossier_ignoré /emplacement_local /emplacement_distant ; quit"
Cette commande ne transfère dans l'emplacement distant que les fichiers modifiés dans l'emplacement local et les nouveaux fichiers et efface dans l'emplacement distant les fichiers qui n'existent plus en local. Voici une description sommaire des éléments de la commande :
* Le **-e** commande à lftp d'exécuter ce qui est entre guillemets.
* Le **mirror** crée une copie exacte.
* Le **-e** de **mirror** efface les fichiers qui n'existent plus.
* Le **-R** signifie que le transfert se fait de l'emplacement local à l'emplacement distant.
* Le **-x** désigne les dossiers qu'il ne faut pas prendre en compte dans le transfert. On met autant de **-x dossier_ignoré** qu'il y a d'emplacements à ignorer. S'il n'y en a pas, on ne met tout simplement pas de **-x**. **NOTE :** Le chemin indiqué pour les dossiers à ignorer dépend du dossier local déclaré.
* Le **quit** coupe la connexion après le transfert.
Voici un exemple pour aider à comprendre la commande :
lftp ftp://moi:motdepasse@ftp.perso.com -e "mirror -e -R -x gestion/exemples/ -x documents/multimedia/musique/ /var/www/mon_site/ / ; quit"
Dans cet exemple, l'identifiant **moi** se connecte avec le mot de passe **motdepasse** au site **ftp.perso.com** pour transférer ce qui est dans **/var/www/mon_site/** (l'emplacement local) dans l'emplacement distant **/** (la racine de l'emplacement distant), et ce en ignorant tout ce qu'il y a dans les dossiers locaux **/var/www/mon_site/gestion/exemples/** et **/var/www/mon_site/documents/multimedia/musique/**.
Lorsqu'on souhaite juste mettre un fichier sur le serveur distant, c'est la fonction //put// qu'il faut utiliser : \\ ''lftp ftp://identifiant:mot_de_passe@site_de_connexion -e "put -O /repertoire/fichier/distant/ /chemin/local/du/fichier; quit"'' \\
Si l'on souhaite rapatrier un fichier, c'est la fonction //get// : \\ ''lftp ftp://identifiant:mot_de_passe@site_de_connexion -e "get /repertoire/fichier/distant/ -o /chemin/local/du/fichier; quit"''
===== Sauvegarde sur votre ordinateur de votre site web =====
Pour faire une sauvegarde sur votre ordinateur de votre site Internet, il faut utiliser la commande suivante :
lftp ftp://identifiant:mot_de_passe@site_de_connexion -e "mirror -e -x dossier_ignoré -x dossier_ignoré /emplacement_distant /emplacement_local ; quit"
Cette commande ne transfère sur l'ordinateur que les fichiers modifiés dans l'emplacement distant et les nouveaux fichiers et efface sur l'ordinateur les fichiers qui n'existent plus dans l'emplacement distant. Voici une description sommaire des éléments de la commande :
* Le **-e** commande à lftp d'exécuter ce qui est entre guillemets.
* Le **mirror** crée une copie exacte.
* Le **-e** de **mirror** efface les fichiers qui n'existent plus.
* Le **-x** désigne les dossiers qu'il ne faut pas prendre en compte dans le transfert. On met autant de **-x dossier_ignoré** qu'il y a d'emplacements à ignorer. S'il n'y en a pas, on ne met tout simplement pas de **-x**. **NOTE :** Le chemin indiqué pour les dossiers à ignorer dépend du dossier distant déclaré.
* Le **quit** coupe la connexion après le transfert.
Voici un exemple pour aider à comprendre la commande :
lftp ftp://moi:motdepasse@ftp.perso.com -e "mirror -e -x public/ -x documents/perso/textes/ /html/ /var/www/mon_site/ ; quit"
Dans cet exemple, l'identifiant **moi** se connecte avec le mot de passe **motdepasse** au site **ftp.perso.com** pour transférer ce qui est dans **/html/** (de l'emplacement distant) dans l'emplacement local **/var/www/mon_site/**, et ce en ignorant tout ce qu'il y a dans les dossiers distants **/html/public/** et **/html/documents/perso/textes/**.
===== Simplification de la commande tapée dans la console =====
Pour ne pas avoir à taper la commande à chaque fois que vous en avez besoin ou avoir à la chercher dans l'historique de la console, vous pouvez la remplacer par un alias. Pour ce faire, il faut ouvrir le fichier **/home/utilisateur/.bashrc**, ce qui donne en ligne de commande :
gedit /home/utilisateur/.bashrc
Il faut ensuite écrire ceci à la fin du fichier :
alias nom_voulu_pour_la_commande='commande'
Cela peut donner par exemple : alias maj_site='lftp ftp://moi:motdepasse@ftp.perso.com -e "mirror -e -R -x gestion/exemples/ -x documents/multimedia/musique/ /var/www/mon_site/ / ; quit"'
Vous enregistrez le fichier et vous ouvrez la console. En tapant **maj_site**, vous démarrez la commande lftp.
===== Automatiser une tâche =====
Par exemple, pour sauvegarder votre site régulièrement, faites un [[tutoriel:script_shell|script]] et utilisez [[cron]] ou [[fcron]].
===== Lien =====
[[http://lftp.yar.ru/|Site officiel de lftp (en)]]
----
//Contributeur : [[utilisateurs:luron|luron]]//