News

This website is currently migrating all its content to the fine CMSMS engine.

Ce site est en train de migrer tout son contenu vers l'excellent moteur CMSMS.

Diese Webseite migriert derzeit sämtliche Inhalte auf CMSMS.

CMS Made Simple

7, place de l'église
30730 Montpezat
France
+334 66 63 10 32
contact@kikinovak.net

kikinovak.net
 

Synchroniser des données via FTP

Pour synchroniser une arborescence de données locales avec une machine distante, le meilleur outil est sans conteste rsync. Malheureusement il n'est pas toujours disponible, et on peut se retrouver avec un seul compte FTP sur un hébergement mutualisé. Dans ce cas, la synchronisation des données peut vite prendre des proportions ingérables.

J'ai expérimenté un peu avec les différents clients FTP disponibles sous Linux, et mon choix s'est porté sur lftp, une application flexible et entièrement scriptable. Voici donc un petit script qui permet de synchroniser les données locales avec une machine distante accessible via un compte FTP :

#!/bin/sh
LFTP=$(which lftp) 
$LFTP -c "set ftp:list-options -a; 
open ftp://utilisateur:pass@machinedistante; 
set net:limit-rate 25000 
lcd /chemin/vers/les/donnees/locales; 
cd /chemin/vers/les/donnees/distantes; 
mirror --continue --reverse --dereference --parallel=5 --delete --verbose"

Explication de quelques options :

  • set net:limit-rate 25000 permet de freiner le chargement pour éviter que l'upload prenne toute la bande passante ;
  • --continue fonctionne comme avec wget et permet de reprendre un chargement interrompu ;
  • la commande mirror synchronise une machine locale avec une machine distante ;
  • l'option --reverse "renverse la vapeur" et synchronise la machine distante avec nos données locales ;
  • --dereference permet d'éviter les erreurs en cas de présence de liens symboliques dans l'arborescence ;
  • --parallel=5 définit le nombre de chargements parallèles ;
  • l'option --delete se charge de supprimer sur la machine distante tous les fichiers qui n'ont plus d'équivalent sur la machine locale ;
  • --verbose affiche les infos notamment sur la progression du téléchargement.

Comme avec rsync, faites très attention avec l'option --delete, susceptible d'envoyer vos téraoctets de fichiers au nirvana numérique en cas de faute de frappe. Il vaut mieux l'omettre dans un premier temps et voir si tout se passe bien.