Synchroniser ses données avec Unison

Unison est un logiciel libre (évidemment) qui permet de synchroniser un répertoire local ( à partir de la machine sur lequel il est installé) avec un répertoire local également ou bien situé sur un serveur. Un des avantages de ce logiciel est qu'il est disponible sur tout un tas de plateformes et s'utiliser de manière très intuitive. De plus, pour ne rien gacher, il existe des paquets pour la plupart des distributions !

Lorsque vous lancez Unison pour la première fois, il vous demande de créer un nouveau profile. Un profile correspond à une configuration répertoire locale/répertoire distant, par la suite cela permet d'effectuer rapidement une synchronisation entre deux répertoires. Au lancement donc, indiquez le répertoire local, puis le répertoire distant comme le montre les screenshots ci-dessous.

Choix d'un dossier local

Choix d'un dossier distant

Unison va alors construire un index de l'état des répertoires ce qui prend un peu de temps... mais cela permet d'en gagner par la suite puisqu'il sera ainsi capable plus rapidement de détecter les modifications entre les différentes versions. Lorsque la construction de l'index est terminée, l'interface vous propose les opérations à effectuer pour synchroniser les deux répertoires : une opération par ligne, comme le montre la capture d'écran ci-dessous :

Interface principale

La colonne la plus à gauche correspond aux fichiers concernés qui proviennent du répertoire local tandis que la troisième colonne correspond aux fichiers concernés dans le répertoire distant. La colonne entre les deux correspond à l'action qui va être effectuée, chaque ligne correspondant à une opération sur les systèmes de fichiers. Voici une légende rapide des actions :

  • un point d'interrogation rouge : rien ne va être effectué, mais il existe toutefois une incohérence entre les deux copies ;
  • une flêche verte de la gauche vers la droite : le fichier du répertoire local va remplacer le fichier du répertoire distant ;
  • une flêche verte de la droite vers la gauche : le fichier du répertoire distant va remplacer le fichier du répertoire local ;
  • un M majuscule : un merge va être tenté entre les deux fichiers.

Vous pouvez bien entendu modifier le type d'action en sélectionnant la ligne concernée et en choisissant l'action que vous désirez dans la barre d'outils. Une fois que la liste des opération vous convient, cliquez sur Go et Unison lancera la synchronisation ... c'est aussi simple que ça !

Forcer un média amovible à apparaître sous le même nom

Si vous utilisez une distribution Linux qui offre le montage automatique des volumes, vous vous appercevrez rapidement que cela risque de poser des problèmes. En effet, Unison utilise l'adresse absolue pour la synchronisation, hors le nom utilisé lors du montage du volume est un peu aléatoire étant donné qu'il dépend de l'ordre dans lequel sont connectés les médias amovibles.

En fait il existe une solution assez simple qui consiste à donner un nom au volume que vous utilisez, ainsi à chaque fois qu'il sera monté, il le sera sous ce nom de volume. Par exemple, pour nommer mon disque externe formaté en ext3 en WDBACKUP, je fais :

shell$ sudo e2label /dev/sda1 WDBACKUP

Et alors le disque est automatiquement monté dans /media/WDBACKUP ... à chaque fois !