Unison: La synchronisation de dossiers pour réseau à petits débits (3/4)

Automatiser les conflits de version

Pour une utilisation totalement automatisée de Unison, il est intéressant de disposer d’une option permettant de résoudra automatiquement les conflits de version entre “source” et “destination”. Il est par exemple possible de spécifier que la version la plus récemment modifiée aura toujours la priorité. Pour cela, utiliser es options “-times = true -force=newer”.

Unison unison-test.prf -batch -times=true -force=newer

Attention avec cette option car la version du fichier non sauvegardé mais plus ancien sera irrémédiable supprimée, sans aucune alerte.

[shell]$ echo “AAA” &gt; /home/ubuntu/source/test.txt</p>
$ echo “BBB” &gt; /home/ubuntu/destination/source/test.txt</p>
</p>
$ unison unison-test.prf -times=true -force=newer -batch</p>
Contacting server…</p>
Connected [//ubuntu-laptop//home/ubuntu -&gt; //ubuntu-laptop//home/ubuntu/destination]</p>
Looking for changes</p>
Reconciling changes</p>
changed &lt;==== changed source/test.txt</p>
ubuntu : changed file modified on 2009-12-10 at 18:39:45 size 4 rw-r–r–</p>
destination : changed file modified on 2009-12-10 at 18:39:55 size 4 rw-r–r–</p>
Propagating updates</p>
UNISON 2.27.57 started propagating changes at 18:40:28 on 10 Dec 2009</p>
[BGN] Updating file source/test.txt from /home/ubuntu/destination to /home/ubuntu</p>
[END] Updating file source/test.txt</p>
UNISON 2.27.57 finished propagating changes at 18:40:28 on 10 Dec 2009</p>
Saving synchronizer state</p>
Synchronization complete (1 item transferred, 0 skipped, 0 failures)</p>
</p>
$ cat /home/ubuntu/source/test.txt</p>
BBB[/shell]

Gestion des historiques de version

Si vous utilisez la gestion automatique des conflits, il peut être rassurant de garder un historique des versions.

Vous pouvez ajouter au fichier de configuration “~/.Unison/unison-test.prf” les deux lignes suivantes:

backup = Name *

maxbackups = 3

La première ligne fonctionne comme l’option “ignore”; elle signifie que vous souhaitez garder une copie de tous les fichiers supprimées. La seconde ligne précise que vous ne garderez que les trois dernières versions (4 en réalité, s’il l’on prend en compte la sauvegarde courante).

Du coup, si vous réaliser à nouveau le test précédent générant un conflit de version, vous constaterez que le fichier de “source” est remplacé par la version présente dans “destination” qui est plus récentes. Par contre, dans le répertoire “~/Unison/backup/source/”, vous trouverez une copie du fichier “test.txt” écrasé par Unison!

[shell]$ echo “AAA” &gt; /home/ubuntu/source/test.txt</p>
$ echo “BBB” &gt; /home/ubuntu/destination/source/test.txt</p>
</p>
$ unison unison-test.prf -times=true -force=newer -batch</p>
Contacting server…</p>
Connected [//ubuntu-laptop//home/ubuntu -&gt; //ubuntu-laptop//home/ubuntu/destination]</p>
Looking for changes</p>
Reconciling changes</p>
changed &lt;==== changed source/test.txt</p>
ubuntu : changed file modified on 2009-12-10 at 18:39:45 size 4 rw-r–r–</p>
destination : changed file modified on 2009-12-10 at 18:39:55 size 4 rw-r–r–</p>
Propagating updates</p>
UNISON 2.27.57 started propagating changes at 18:40:28 on 10 Dec 2009</p>
[BGN] Updating file source/test.txt from /home/ubuntu/destination to /home/ubuntu</p>
[END] Updating file source/test.txt</p>
UNISON 2.27.57 finished propagating changes at 18:40:28 on 10 Dec 2009</p>
Saving synchronizer state</p>
Synchronization complete (1 item transferred, 0 skipped, 0 failures)</p>
</p>
$ cat /home/ubuntu/source/test.txt</p>
BBB</p>
</p>
cat /home/ubuntu/.unison/backup/source/test.txt</p>
AAA</p>
Connected [//ubuntu-laptop//home/ubuntu/destination -&gt; //ubuntu-laptop//home/ubuntu/source]</p>
Looking for changes</p>
scanning source1/test1.tst</p>
Reconciling changes</p>
The following paths have been completely emptied in one replica:</p>
‘source2′</p>
Unison may delete everything below these paths in the other replica.</p>
Aborting…[/shell]

Forcer la suppression

Si vous supprimer beaucoup de fichiers, voire tout un dossier, Unison, lorsqu’il est évoqué en mode automatique, va refuser d’appliquer les changements.

[shell]unison unison-test.prf -batch</p>
Contacting server…</p>
Connected [//ubuntu//home/ubuntu -&gt; //ubuntu//home/ubuntu/destination]</p>
Looking for changes</p>
Reconciling changes</p>
The following paths have been completely emptied in one replica:</p>
‘source'</p>
Unison may delete everything below these paths in the other replica.</p>
Aborting…[/shell]

En effet, Unison, par défaut, est un outil de réplication de répertoires, pas un outil de sauvegarde. Ceci signifie que si vous supprimez des fichiers sur un de vos PC, ces fichiers seront supprimés par Unison sur le répertoire de synchronisation. Si vous n’avez pas activé d’historique de modification avec les options « backup », vous risquez alors de perdre toutes les copies des fichiers supprimés. Toutefois, peut-être est-ce le comportement que vous souhaitez (le dossier « source » et le dossier « destination » toujours synchronisé). Aussi, vous pouvez utiliser l’option «  confirmbigdeletes=false » pour permettre à Unison de supprimer dans contrainte des fichiers ou des dossiers. Attention donc si vous utiliser cette option

Unison unison-test.prf -batch -confirmbigdeletes=false

Beaucoup d’autres options sont disponibles

Unison dispose d’un très grand nombre d’options qui sont accessible depuis la ligne de commande.

Unison -help

Le mode de commande offre également un tutorial si vous exécutez Unison avec la commande « -doc tutorial ».

Unison -doc tutorial

Mode client serveur dans un réseau local

Unison effectue un long travail d’analyse des donnés dans le répertoire « source » et dans la « destination » afin de minimiser le volume de données à déplacer. Ce travail de préparation peut être très long, surtout si vos dossiers contiennent beaucoup de fichiers. Aussi, il est peux utile d’utiliser Unison pour copier des informations de dossier local à dossier local (à moins de vouloir préserver un historique de version ». Unison trouve toute son utilité lors de la synchronisation de dossier entre deux PC.

Dans le cas où les deux PC résident dans un même réseau local « sécurisé, il est inutile de crypter par exemple les échanges. Vous pouvez donc utiliser Unison en mode client /serveur réseau.

Toute d’abord, l’utilisateur qui réalise la réplication doit exister sur les deux OS et doit disposer d’un répertoire de stockage personnel.

Sur le « serveur » (c’est à dire le PC où seront recopiées les données, lancez simplement la commande suivante où « 1050 » est un port TCP non utilisé.

Unison -socket 1050

Pensez à vous assurer que votre pare-feu laisse bien passer les communications entrantes sur ce port.

Sur le PC source (c’est à dire le PC où sont les données à répliquées), lancer la commande suivante où 192.168.1.200 est l’adresse IP du PC de destination, « 1050 » le port TCP de communication entre les deux instances de Unison et « destination » le répertoire du dossier personnel de l’opérateur de sauvegarde sur le PC de destination:

Unison home/ubuntu/source socket://192,168,1,200:1050/destination

Nous verrons demain comment sécuriser Unison avec SSH

A propos Olivier Olejniczak

Cofondateur de SynerGeek.fr. Passionné d'informatique, je m'intéresse plus particulièrement aux technologies de virtualisation et de stockage. J'apprécie la liberté et la quasi-absence de frontières à mon imagination qu'offre l'OpenSource et Linux. Professionnellement, je travaille exclusivement avec les outils Microsoft. Les pieds bien sur terre et ancrés dans le quotidien de l'entreprise, j'aime faire partager mes découvertes et contribuer à un meilleur usage des technologies. Vous aussi, rejoignez-nous sur Synergeek et partagez votre expérience!

Je vous propose également...

Signature HTML dans Mail Mac OS X Mavericks

Les méthodes changent entre les différentes version d’OS Apple pour intégrer une signature html dans …

Comment accélérer démarrage de Windows 7 ou 8

Voici un tutoriel en vidéo pour apprendre comment accélérer le boot de Windows 7. La même démarche peut-être utilisée pour Vista ou Windows 8. Ce tuto est réservé à des utilisateurs avertis. Il est toujours bon de se faire une petite image disque avant ces manip'.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.