Sauvegarder un FTP avec lftp
Mon problème : trouver un moyen pratique de sauvegarder un serveur FTP, donc typiquement une ligne de commande que je pourrai faire tourner régulièrement en cron ou manuellement
Ma solution : lftp
lftp est un client FTP libre (licence GPL) qui propose des fonctionnalités très avancées dont l'une de mirroring qui va nous intéresser ici.
Sous Debian un petit apt-get install lftp
est suffisant pour installer la bête.
Imaginons que je désire :
- me connecter au serveur
ftp.monsite.fr
; - avec mon compte
djib
; - et sauvegarder tout le répertoire
/www
distant (sous-répertoires inclus) vers/backups/monsite
en local.
La commande à lancer est
lftp -u djib -e "mirror -en --verbose /www /backups/monsite/; exit" ftp.monsite.fr
où
-u
précise le nom de l'utilisateur-e
indique la commande distante à exécuter
En option à mirror
j'ai ajouté :
-e
qui supprime les fichiers locaux qui n'existent plus sur le serveur distant ;-n
qui ne transfère que les fichiers plus récents sur le serveur qu'en local (en gros une sauvegarde différentielle) ;--verbose
qui affiche les fichiers en cours de transfert.
Si vous voulez que le mot de passe se renseigne automatiquement, vous pouvez le mettre juste après le nom d'utilisateur (lftp -u djib,password …
) ou dans un fichier externe.
Voilà, n'hésitez pas à vous plonger dans le manuel de lftp
qui sera bien plus complet que ce petit guide pratique.