Unison (logiciel)
Unison est un logiciel de synchronisation de fichiers, doté également de fonctionnalités lui permettant de créer et gérer des sauvegardes de répertoires. La synchronisation est bidirectionnelle : les modifications de chacun des répertoires sont reportées sur l'autre, la modification la plus récente étant considérée comme la bonne. Il permet donc de garder à niveau des répertoires se trouvant en même temps sur deux machines différentes.
Unison est un logiciel libre sous licence GPL. Il fonctionne sur un large spectre de systèmes d'exploitation (Windows, Linux, Mac OS X), permettant ainsi de synchroniser des fichiers de différents systèmes d'exploitation.
Usage
Unison se montre utile pour synchroniser certains répertoires :
- d'un portable avec un ordinateur de bureau
- d'un ordinateur avec un disque externe pouvant être utilisé par un autre
- d'un ordinateur avec un NAS, etc.
DĂ©tails
La synchronisation fonctionne selon deux modalités :
- en mode local : (sur le même système de fichiers ou sur un répertoire réseau monté en local), où le programme client se charge de comparer les deux versions des répertoires et effectuer la synchronisation.
- en mode distant : le programme client contacte le programme serveur, habituellement grâce au protocole SSH, ce qui permet une communication sécurisée à travers Internet. La version d'Unison entre le programme serveur et le programme client doit être identique.
Le logiciel peut fonctionner de façon interactive dans une session graphique, ou bien dans un terminal texte, avec essentiellement les mêmes possibilités. Il peut aussi fonctionner en mode automatique non interactif, à condition de préciser une politique pour gérer les modifications conflictuelles des deux côtés, faute de quoi les opérations demandant confirmation ou décision de l'utilisateur ne seront pas exécutées.
Unison a été écrit dans le langage OCaml. C'est un programme populaire, et ainsi il est souvent donné comme exemple de programmes sérieux utilisant le réseau codés en OCaml [2].
Comparaison avec d'autres outils
- Unison est destiné à effectuer des synchronisations bidirectionnelles alors que rsync est destiné à de la synchronisation unidirectionnelle, toutefois Unison peut être paramétré pour de la synchronisation unidirectionnelle et, alors que rsync n'autorise qu'une synchronisation unidirectionnelle, on peut l'utiliser comme élément pour écrire des outils de synchronisation bidirectionnelle [3].
- La question peut se poser de la différence entre Unison et un système de gestion de versions comme Subversion ou Git, qui effectuent aussi une synchronisation bidirectionnelle des fichiers. La réponse est dans la fonction des outils : un système de gestion de version consigne chaque modification dans un historique détaillé permettant de fusionner des modifications concurrentes et reconstituer à la demande tout état antérieur. À l'inverse, et même si dans certains cas il conserve d'anciennes versions de sauvegarde, Unison n'a pas pour but de conserver l'historique des fichiers mais seulement de propager les modifications.
Notes et références
- « Release v2.53.3 · bcpierce00/unison », GitHub, (consulté le )
- « Quelques succès », Inria (consulté le )
- drsync mentionné sur la page ressource de rsync