Publier vos sites FTP avec lftp

2015juil.10

Vous gérez de nombreux sites internet et avez besoin de facilement les mettre à jour. Vous utilisez pour cela un logiciel FTP tel que Filezilla pour sauvegarder l’intégralité de vos sites (adresse, login, mot de passe). Oui mais voilà, lorsque vous modifiez de nombreux fichiers, vous devez vous déplacer dans les différents répertoires de votre site, et publiez chaque fichier modifié.

Vous pouvez également utiliser LFTP, un outil simple et efficace qui vous permet de publier vos fichiers en ligne de commande entre autres fonctionnalités :

  • publier / rapatrier un fichier
  • public / rapatrier un répertoire (et ses sous-répertoires)
  • synchroniser des répertoires (avec suppression des fichiers ayant disparus de la source)

Pour synchroniser des dossiers (fonction miroir), utilisez lftp de la manière suivante :

lftp ftp://$ftp_user:$ftp_pass@$ftp_hote -e "mirror -R $local_dir $remote_dir ; quit";

Comme vous pouvez le voir, cette commande n’est pas forcément évidente à se souvenir, il vous faudra entre autres renseigner à chaque fois le mot de passe, le répertoire distant… Afin de remédier à ce problème, j’ai donc créé un petit script bash qui vous permettra de sauvegarder vos sites sous forme de bookmark et de lancer les commandes « mirror » avec un minimum d’arguments.

Ce script utilise les arguments suivants :

  • c : nom du site (dans le fichier de configuration)
  • r / s : send ou receive (sens du miroir)
  • d : si on doit également effacer les fichiers dans le répertoire de destination
  • f : le répertoire à synchroniser

Aperçu du fichier de configuration / sauvegardes bookmarks :

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Servers>
 <Server name="NOM DU SITE (argument c)">
 <Host>ADRESSE HÔTE</Host>
 <Port>21</Port>
 <User>UTILISATEUR FTP</User>
 <Pass>MOT DE PASSE FTP</Pass>
 <LocalDir>CHEMIN ABSOLUE EN LOCAL</LocalDir>
 <RemoteDir>REPERTOIRE DE CONNEXION DISTANT (www par exemple, si c'est un compte ftp racine)</RemoteDir>
 </Server>
</Servers>

Important : pour utiliser ce script, vous devez avoir installer xpath (paquet poppler-utils sous Linux Debian)

Documents liés

Commentaires

 Clément Levallois
 18000 Bourges
 SIRET : 81783887300021