Accueil > Partage de connaissances > Je sors la tête du guidon... > Comment synchroniser un même répertoire (...)
 Version imprimable

Je sors la tête du guidon...
Comment synchroniser un même répertoire entre plusieurs machines ?

Si vous disposez de plusieurs PC, vous avez probablement déjà eu envie de disposer d’un répertoire "Mes documents" ou "Mes images" ayant le même contenu quelle que soit la machine utilisée...
Bien évidemment, cela suppose que toute modification apportée à un fichier sera ensuite propagée vers les autres machines dès que celles-ci seront en mesure de recevoir le changement.
Nous allons voir comment s’y prendre sans trop de risques ;-)

Première publication le 29 février 2012
Date de dernière mise en ligne : dimanche 5 janvier 2014, par Richard BONMARIN

Comment peut-on parvenir à ce résultat au fil des jours en toute confiance ? La réponse tient en trois mots : rigueur, organisation et outillage adapté...

J’avais déjà traité, dans l’article 159, d’un besoin assez proche de synchroniser des répertoires de développement, mais avec la volonté de garder un contrôle total de chaque changement. Pour y parvenir, j’ai choisi de m’appuyer sur le logiciel Open Source "WinMerge" qui répond pleinement à ce besoin.

Aujourd’hui, mon attente est différente : trois PC et un NAS [1] se côtoient à la maison et chacun a un rôle ou un profil spécifique. Je dispose donc d’un compte Windows sur chaque machine avec un répertoire local nommé « Mes documents » mais dont le contenu diffère d’un PC à l’autre. Idéalement, je voudrais que ces répertoires soient identiques pour ne plus avoir à me demander où j’ai bien pu mettre le fichier dont j’ai justement besoin mais qui se trouve sur une autre machine que celle qui est allumée...

L’objectif de cet article est de vous montrer qu’il est possible de disposer d’un contenu identique sur toutes les machines : le moyen d’y parvenir le plus simplement est d’abord de disposer d’un emplacement de stockage commun à toutes les machines. Cet emplacement - le NAS - deviendra la référence pour chacune des machines qui saura dans quel sens actualiser les données.

Rigueur et organisation

Avant toute action, il est essentiel de savoir précisément ce que l’on veut faire, sur quel périmètre et dans quelles conditions ; l’idéal est même de l’écrire pour ne rien oublier au moment de la mise en œuvre.

De plus, il est fortement conseillé de travailler sur des répertoires de test avant d’appliquer les traitements aux répertoires cibles. Ces répertoires de test pourront être constitués de copies des fichiers portés par les répertoires cibles pour avoir une volumétrie représentative.

Les logiciels en lice

J’ai commencé par rechercher des logiciels susceptibles de répondre au besoin via les moteurs de recherche, jusqu’à ce que je trouve la page "Tableaux de comparaison des logiciels de synchronisation" dans Wikipedia traitant du sujet bien mieux que je n’aurais pu le faire : n’hésitez pas à consulter cette page pour faire votre propre opinion du sujet.

Il m’a semblé primordial de ne retenir que les logiciels :
- Open Source ou en version gratuite pour les particuliers
- capables de détecter les suppressions et les renommages de fichiers
- disposant éventuellement de leur propre planificateur

La liste s’est rapidement réduite aux logiciels suivants :
- Allway Sync
- BestSync
- DirSync Pro
- EasyToSync
- FreeFileSync
- Synkron

Une première évaluation a permis d’en éliminer quelques-uns, plus ou moins rapidement :
- Allway Sync (freeware) limite le nombre de fichiers traités mensuellement : cette limite a été atteinte en quelques jours
- BestSync Freeware ne fonctionne pas de manière autonome : pas de planificateur ni service Windows
- EasyToSync en version Freeware ne supporte ni les sous-répertoires ni les tâches multiples

L’absence des fonctions citées ou leur limitation est rédhibitoire 

Ne restent en course que DirSync Pro, Synkron et FreeFileSync...

DirSync Pro v1.44

DirSync Pro est un logiciel écrit en Java, ce qui lui permet de fonctionner sur toutes sortes de plates-formes. Son installation est ultra-simple et ne demande pas de droits d’administration locale : il suffit de décompresser une archive ZIP dans le répertoire de son choix puis de lancer le programme "DirSyncPro.exe".

La synchronisation peut se faire en mode unidirectionnel (l’actualisation se fait toujours dans le même sens) ou bidirectionnel.

On peut demander une sauvegarde des fichiers modifiés, dans la limite de 50 pour chaque fichier (personnellement, je me contente des 5 dernières versions d’un fichier). Les copies de sauvegarde sont alors placées dans un répertoire spécifique "/.DirSyncProBackup". Cette fonction est réservée au mode unidirectionnel.

Il est possible d’exclure des fichiers ou des répertoires en employant du "pattern masking" (on utilise l’astérisque pour signifier "n’importe quels caractères" ; exemple : "AppData*" pour ne pas avoir à spécifier le nom complet des répertoires concernés comme "AppData\Local\Temp\" ou "AppData\Roaming\Microsoft\Windows\Cookies\", etc.). Cette fonction est réservée au mode unidirectionnel.

DirSync Pro intègre un outil de planification ("Scheduler") fonctionnant en tâche de fond du système et capable de lancer les synchronisations à intervalles réguliers.

On définit une tâche de synchronisation sous la forme d’un "Job" : ce Job est associé à deux répertoires à synchroniser, connait les exclusions à faire, le mode de synchronisation choisi entre les répertoires et sa fréquence d’exécution s’il est planifié (toutes les 15 min, par exemple).

J’utilise DirSync Pro au bureau pour sauvegarder le répertoire local "Mes documents" sur une clé USB en mode unidirectionnel seulement ; le mode bidirectionnel ne m’a pas satisfait car il ne supporte pas le filtrage des fichiers ou des répertoires et provoque, par voie de conséquence, la copie de tous les fichiers temporaires de l’OS ou du navigateur... De plus, il cherche à actualiser des fichiers qui sont déjà synchrones : décidément, ce mode ne semble pas encore au point fonctionnellement 

En synthèse : DirSyn Pro fonctionne bien en mode unidirectionnel ; sa capacité à sauvegarder les fichiers avant synchronisation est un plus appréciable si l’on n’utilise pas de logiciel de sauvegarde automatique comme Yadis Backup ! présenté dans l’article 162.

Synkron

Synkron est un logiciel plus sophistiqué que DirSync Pro. Je l’ai utilisé pour synchroniser mes répertoires personnels au domicile : dans un premier temps, j’ai choisi de le faire travailler en mode "Mise à jour", c’est-à-dire sans propagation des suppressions de fichiers.

Il permet de définir plusieurs tâches de synchronisation, sait gérer une liste d’exclusion (qu’il appelle une "Liste noire"), intègre une fonction de planification et trace son activité dans un fichier de log.

Son installation nécessite d’avoir les droits d’Administrateur local : ce n’est pas un problème au domicile mais c’en est un au bureau.

Contrairement à DirSync Pro, il n’offre pas de fonction de sauvegarde complémentaire à la synchronisation ; utilisant un autre logiciel de sauvegarde (Yadis Backup), cela ne me gêne pas.

C’est un outil fiable mais qui n’est pas sans reproches :
- La liste d’exclusion est commune à tous les traitements de synchronisation
- Il consomme pas mal de ressources et je dois parfois baisser sa priorité pour pouvoir travailler sans être gêné
- Son IHM est extrêmement lente quand il est en phase de traitement d’une tâche de synchronisation, ce qui s’avère assez pénible à la longue...
- Il peut démarrer en tâche de fond (une icône apparaît alors dans le System Tray Windows) mais il ne sait pas y retourner si l’on affiche sa fenêtre de gestion : l’icône passe alors dans la barre des tâches quand on minimise cette fenêtre.

En synthèse : Synkron est un outil intéressant mais perfectible. Mon principal reproche concerne sa vitesse de traitement que j’estime insuffisante dès lors que les répertoires à synchroniser sont assez gros et que le débit réseau n’est pas au top (mon portable est souvent en Wi-Fi G). Peut-être n’ai-je pas trouvé les bons réglages ? Mais alors, pourquoi ne les ai-je pas trouvés facilement ?

FreeFileSync

Ma première impression de FreeFileSync v4 n’avait pas été très bonne car je trouvais qu’il lui manquait une fonction de planification et que ce manque était problématique ; il était toujours possible de recourir au planificateur de tâches de Windows mais cela ne me semblait pas adapté au besoin.

Je viens d’installer la v5 pour une nouvelle évaluation et - cela m’avait probablement échappé la première fois - j’y ai trouvé mieux qu’un planificateur : RealTimeSync est une fonction capable de réagir immédiatement en cas d’ajout ou de modification du contenu d’un répertoire.

La première installation de FreeFileSync impose d’avoir les droits d’administration locale mais on peut demander, pendant cette installation, de créer une version ’portable’ du logiciel : dès lors, il suffit de créer une archive ZIP du répertoire d’installation pour pouvoir utiliser le logiciel sur une autre machine sur laquelle on n’a pas de droits Administrateur.

Il permet de définir plusieurs tâches de synchronisation, sait gérer une liste d’exclusion par tâche, intègre une fonction de synchronisation "Temps Réel" et trace son activité dans un fichier de log.

Comme Synkron, il n’offre pas de fonction de sauvegarde complémentaire à la synchronisation ; cela ne me gêne toujours pas :)

En synthèse : FreeFileSync cumule les qualités de ses concurrents sans leurs faiblesses. Sa vitesse de traitement lors des comparaisons et la détection du changement par RealTimeSync sont des atouts indéniables.

Post-scriptum :

En conclusion, FreeFileSync est, à mes yeux, le meilleur des trois logiciels évalués. Je l’utilise depuis début 2012 avec toujours autant de satisfaction !

[1] Network Access Storage : c’est un Serveur de fichiers en réseau que l’on branche sur sa box, par exemple...


(Aucune contribution au forum)


 

© R. BONMARIN, 2003-2011