Mis-à-jour incrémentale de mon calepin

Le sam. 21 mai 2011

Avec Pelican, l'administration de mon blog a été sévèrement allégée. Ce qui l'était un peu moins, en revanche, c'était la mise-à-jour à la création d'un nouvel article. Quels fichiers ont été modifiés ? Quels fichiers envoyés ? Jusqu'alors, je ne me posais pas tellement de questions, j'envoyais, via ftp, la totalité des fichiers du blog. Point. Seulement voilà, à la longue, si à chaque nouvelle actualisation, je pratique l'envoi massif, d'article en article, l'opération risque fort de devenir ruineuse.

La solution la plus indiquée : une synchronisation incrémentale. Ce que rsync (remote synchronisation ou synchronisation distante) fait très bien. L'idéal aurait été, manifestement, de passer par le protocole SSH. Malheureusement, le serveur de mon hébergeur refuse ce type de connexion : This account is restricted by rssh. Allowed commands: sftp. Comme indiqué, il me faudra donc passer par le ftp.

CurlFtpFS permet de monter, sur son propre système de fichiers, un système de fichiers distant, par connexion ftp. Le montage du système de fichiers distant offre une très grande souplesse pour manipuler les données ; n'importe quelle application peut-être utilisée y compris rsync. Le tout exige, tout de même, quelques petits bidouillages que l'on trouve décrits très largement sur Internet — très souvent sans grande rigueur malheureusement.

# apt-get install curlftpfs

Normalement, le module de fuse est chargé. Une petite vérification :

# modprobe -l | grep fuse

Vérifiez que l'utilisateur appartient bien au groupe fuse :

$ groups

Si tel n'est pas le cas, ajoutez-le :

# usermod -a -G fuse utilisateur

Un p'tit bug (Ubuntu) non résolu sous Debian apparemment : pour que l'utilisateur apparaisse dans le groupe fuse, il est nécessaire de faire un p'tit reboot.

Ensuite, il faut créer un point de montage dans le répertoire /mnt (man hier) avec les droits qui vont :

# mkdir /mnt/ftpcalepin

# chmod a+w /mnt/ftpcalepin

Pour éviter d'inclure les paramètres de connexion dans la commande qui va monter le ftpfs, renseignez le fichier ~/.netrc (man netrc) comme suit (s'il n'existe pas... il faut le créer) :

machine votre_hôte

login votre_identifiant

password votre_mot_de_passe

Ne reste plus qu'à monter temporairement le ftpfs :

$ curlftpfs ftp://road2mayotte.org/calepin /mnt/ftpcalepin

Enfin, on synchronise avec rsync :

$ rsync --progress  --recursive --update --delete --force <source_dir> <destination_dir>

Pour démonter le tout :

$ fusermount -u /mnt/ftpcalepin

Il est possible de monter automatiquement le ftpfs au démarrage si le réseau est actif au montage des partitions et que le fichier netrc est créé pour root.

Un petit script serait des plus pratiques.

N'hésitez à me faire vos commentaires par mail. Adresse ci-dessous.

Par Christophe, Catégorie : blog

Tags : Logiciels Libres / ftpfs / rsync / fuse /