Chapitre 47. Synchronisation des fichiers

Table des matières

47.1. Logiciels pour la synchronisation des données
47.2. Critères de choix du logiciel
47.3. Introduction à Unison
47.4. Introduction à CVS
47.5. Introduction à Subversion
47.6. Introduction à rsync
47.7. Introduction à mailsync

Résumé

De nos jours, nombreux sont ceux qui utilisent plusieurs ordinateurs : un ordinateur à la maison, un ou plusieurs ordinateurs sur le lieu de travail et éventuellement en plus un ordinateur portable ou un assistant personnel pour les déplacements. On a besoin d'une grande quantité de fichiers sur tous ces ordinateurs et il est important de pouvoir travailler avec n'importe quel ordinateur, modifier ces fichiers et disposer de leur version la plus récente sur tous les ordinateurs.

47.1. Logiciels pour la synchronisation des données

Sur des ordinateurs reliés en permanence entre eux par un réseau rapide, la synchronisation de fichiers ne pose aucun problème. Dans ce cas, ill suffit de choisir un système de fichiers réseau, comme NFS et d'enregistrer les fichiers sur un serveur. Ensuite, tous les ordinateurs accèdent aux mêmes données par l'intermédiaire du réseau. Cette méthode ne fonctionne pas dans le cas d'une mauvaise connexion réseau ou si la liaison n'est pas permanente. Les personnes qui voyagent avec un ordinateur portable sont amenées à avoir des copies de tous les fichiers sur le disque dur local. Mais lorsque les fichiers sont modifiés, le problème de la synchronisation se pose vite. Si un fichier a été modifié sur un ordinateur, il faut veiller à actualiser aussi la copie du fichier sur tous les autres ordinateurs. Si cette situation ne se produit que de temps en temps, les procédures de copie manuelle à l'aide de scp ou de rsync sont suffisantes. Avec une plus grande quantité de données, la tâche se complique rapidement et requiert une grande attention de la part de l'utilisateur pour éviter des erreurs, comme le remplacement d'une nouvelle version d'un fichier par une version plus ancienne.

[Warning]Risque de perte de données

Il faut de toute façon se familiariser avec le logiciel utilisé et tester ses fonctions avant de gérer ses données à l'aide d'un système de synchronisation. Pour les données importantes, une sauvegarde est indispensable.

Pour s'épargner le travail fastidieux de la synchronisation manuelle des données comportant, en outre, un risque élevé d'erreurs, il existe des logiciels qui automatisent cette tâche en se basant sur différentes méthodes. Les brefs aperçus suivants ont pour but de donner à l'utilisateur une idée de fonctionnement et de l'utilisation de ces logiciels. Avant de les mettre en œuvre réellement, il vaut mieux lire attentivement la documentation y afférant.

47.1.1. Unison

Dans le cas d'Unison, il ne s'agit pas d'un système de fichiers réseau. Ici, en revanche, on enregistre les fichiers et on travaille avec ces derniers tout à fait normalement en local. Le programme Unison peut être appelé manuellement pour synchroniser des fichiers. Lors de la première synchronisation, une base de données est créée sur les deux ordinateurs concernés, dans laquelle sont enregistrés les sommes de contrôle, les pointeurs temporels et les autorisations des fichiers sélectionnés. Lors de l'appel suivant, unison peut reconnaître quels fichiers ont été modifiés et en proposer la transmission d'un ordinateur vers l'autre. En règle générale, on peut accepter toutes les propositions.

47.1.2. CVS

Utilisé en général pour la gestion de versions de textes sources de logiciels, CVS offre la possibilité de disposer des copies de fichiers sur plusieurs ordinateurs. Il se prête donc parfaitement à ce que nous recherchons. Dans le cas de CVS, il existe une base de données centrale (repository, ou en français, un référentiel) sur le serveur qui ne stocke pas seulement les fichiers mais également les modifications de ces fichiers. Toute modification effectuée localement est validée (commit) dans la base de données pour être reprise (update) par d'autres ordinateurs. Les deux procédures doivent être préparées par l'utilisateur.

En ce qui concerne les modifications, CVS est très tolérant vis-à-vis des erreurs : les modifications sont rassemblées, et il n'y a conflit que si des modifications ont été apportées aux mêmes lignes. Dans ce cas, la base de données reste dans un état stable, le conflit est visible et doit être résolu sur l'ordinateur client.

47.1.3. subversion

Contrairement à CVS qui « a évolué », subversion est un projet développé de façon consistante ; subversion a été créé pour remplacer avantageusement CVS d'un point de vue technique.

Il est clair que subversion apporte une amélioration à CVS dans de nombreux domaines. En raison de son histoire, CVS ne gère que les fichiers et ignore tout des répertoires. Dans subversion, au contraire, les répertoires possèdent aussi un historique de versions et peuvent également être copiés et renommés exactement comme les fichiers. En outre, il est possible d'ajouter à chaque fichier et à chaque répertoire des métadonnées qui sont également soumises à la gestion des versions. À la différence de CVS, subversion offre un accès réseau transparent grâce à quelques protocoles comme WebDAV (Web-based Distributed Authoring and Versioning). WebDAV étend la fonctionnalité du protocole HTTP pour permettre l'accès en écriture en collaboration aux fichiers sur les serveurs Web distants.

La réalisation de subversion s'est en grandes parties basées sur des applications existantes. Pour cette raison, le serveur Web Apache et l'extension WebDAV sont toujours utilisés en conjonction avec subversion.

47.1.4. mailsync

Comparé aux outils de synchronisation mentionnés jusque-là, mailsync sert uniquement à la synchronisation des messages électroniques entre les différentes boîtes aux lettres. Il peut s'agir aussi bien des fichiers de boîtes aux lettres locaux que de ceux des boîtes aux lettres hébergées sur un serveur IMAP.

Il est décidé, en fonction de l'identificateur de message (message ID) contenu dans l'en-tête du message électronique, individuellement pour chaque message s'il doit être sychronisé ou effacé. Une synchronisation est possible autant entre les différentes boîtes aux lettres qu'entre les hiérarchies de boîtes aux lettres.

47.1.5. rsync

Lorsque vous n'avez pas besoin du contrôle de versions mais que vous souhaitez synchroniser de grandes arborescences de fichiers sur des connexions réseau lentes, l'outil rsync est fait pour vous. rsync dispose de mécanismes minutieux pour transférer exclusivement des modifications dans les fichiers. Cela ne concerne pas seulement les fichiers texte, mais également les fichiers binaires. Pour reconnaître les différences entre fichiers, rsync répartit les fichiers en blocs et calcule des sommes de contrôle correspondant à ces blocs.

L'effort consenti à reconnaître les modifications a aussi un prix. Pour que rsync fonctionne, il faut redimensionner généreusement les ordinateurs qui doivent être synchronisés. Il n'est surtout pas question d'économiser sur la mémoire vive (RAM).