lftp comporte une fonction de mirroir qui permet de mettre à jour tous les fichiers d'un site[1] en quelques commandes. On peut en plus lui dire quels types de fichiers envoyer grâce à des expressions régulières[2]. Les commandes lftp peuvent également être écrites dans un fichier texte de sorte qu'il suffit ensuite de lancer lftp sur ce script et de le laisser travailler ;-) .

Par exemple, pour uploader mon album photo, je tape les commandes suivantes :

$ lftp mon-site@ftpperso.free.fr

Se placer dans le bon répertoire local :

lftp> lcd ~/www/mon-site/

Pour uploader les photos et leurs pages :

lftp> cd Photos/
lftp> lcd Photos/
lftp> mirror -Ri jpg$
lftp> mirror -Ri html$

L'option -R indique que le miroir se fait du répertoire local vers le répertoire distant. L'option -i indique qu'il faut inclure les fichiers vérifiant l'expression régulière qui suit, on peut utiliser cette option autant de fois que nécessaire (voir ci-après). Enfin jpg$ signifie « tous les fichiers finissant par jpg »[3].

Pour uploader les vidéos et leurs pages :

lftp> cd ../Videos/
lftp> lcd ../Videos/
lftp> mirror -Ri jpg$ -i mov$ -i mp4$
lftp> mirror -Ri html$

Pour uploader les pages à la racine et les fichiers communs :

lftp> cd ..
lftp> lcd ..
lftp> mirror -Rri php$ -i html$ -i ico$ -i mp3$ -i mp4$ -i jpg$ -i png$
lftp> cd common/
lftp> lcd common/
lftp> mirror -Rri css$ -i js$ -i php$ -i gif$ -i jpg$ -i png$

La commande help donne le sommaire de l'aide, la commande help mirror donnera l'aide sur mirror.

Notes

[1] ou l'inverse : mettre à jour la copie locale d'un site

[2] codes qui permettent de décrire le nom des fichiers de manière générique, à la manière de *.txt

[3] le signe ^ désigne le début du nom alors que $ en désigne la fin