Mandriva

================== =========================================================== =================================================================== CETTE PAGE - SOUS UNE FORME RÉVISÉE - A ÉTÉ TRANSFÉRÉE À L'ADRESSE SUIVANTE :

http://wiki.mandriva.com/fr/Unison

NOUS VOUS CONSEILLONS DE VOUS Y RENDRE… ==================================================================

Guide pour Unison - 1 : Les bases - Synchroniser deux répertoires

Unison est un outil qui permet la synchronisation et la sauvegarde de répertoires.

Nous aborderons sur cette page l'utilisation d'Unison comme outil de synchronisation.

La sauvegarde sera abordée à la page suivante.

Nous vous conseillons cependant de lire une première fois les différentes pages à la file, chaque page présupposant l'assimilation des pages précédentes…

Introduction : les profils Unison

Si vous voulez définir une tâche répétitive sous Unison, créez un profil.

Un profil est un fichier texte dont l'extension est .prf.

Vous y définirez une tâche qu'Unison pourra effectuer régulièrement : une fois créé, le profil pourra être exploité pendant des années, mais il pourra aussi être modifié à n'importe quel moment, si nécessaire, avec tout le degré de finesse voulu.

Nous commencerons par des exemples très simples, bien entendu...

Les fichiers de profil concernant des tâches que vous lancerez sous votre identité d'utilisateur sont à placer dans votre répertoire personnel de configuration pour Unison, qui par défaut sera le répertoire :

/home/toto/.unison

(je suppose que votre nom d'utilisateur est toto, le point initial devant le nom du répertoire en fait un répertoire caché)

Synchroniser deux répertoires via un disque externe ou une clé USB

Le problème

Vous travaillez régulièrement à la maison, sous Linux, sur un répertoire, disons /home/toto/Documents/Cours. Au bureau, vous ne disposez, hélas, que d'une machine sous Windows et vous travaillez sur un répertoire homologue : C:\Documents and Settings\toto\Mes Documents\Cours.

Vous souhaitez reporter régulièrement les changements effectués dans chacun de ces répertoires sur l'autre : autrement dit, vous souhaitez pouvoir synchroniser ces deux répertoires (en arrivant le matin au bureau ou en rentrant chez vous le soir, c'est la première chose que vous faites...).

Naturellement, vous passerez par l'entremise d'un support mobile léger : clé USB ou disque dur externe.

Un profil simple sur machine Linux

Vous allez donc créer un profil pour cette tâche, disons le fichier texte : /home/toto/.unison/cours.prf (rappelez-vous que l'extension .prf est indispensable pour un fichier de profil).

Nous devons d'abord définir les répertoires à synchroniser. Sur la machine Linux, ce sera donc :

  • le répertoire existant du disque dur interne : /home/toto/Documents/Cours
  • le fichier intermédiaire situé sur une partition du disque dur externe, que nous supposerons montée ainsi : /mnt/SauvDD
Dans le jargon d'Unison les répertoires à synchroniser sont appelés des répliques (replica dans la documentation en anglais d'Unison).

Les premières lignes du fichier de profil pourront alors être ceci :

\# cours.prf - sur machine Linux

\# Les répliques à synchroniser
root = /home/toto/Documents/Cours/
root = /mnt/SauvDD/Documents/Cours/

Dans les fichiers de profil les lignes de commentaire sont précédées par un dièse : #, c'est le cas ici des deux premières lignes non vides du fichier.

Les répliques sont ensuite définies par des lignes de la forme root = chemin_dune_replique. La première réplique sera affichée à gauche dans l'interface graphique et la seconde à droite.

Ceci peut constituer à soi seul un fichier de profil, c'est le cas le plus simple.

Bien entendu, si vous lancez Unison en tant que toto, il sera nécessaire que toto possède des droits d'écriture et de lecture sur /mnt/SauvDD.

Si vous voulez lancer un profil sous root, le répertoire .unison de root (/root/.unison) devra contenir ce profil ou un lien symbolique vers ce profil.

Lancer Unison

Le lancement d'Unison se fait comme pour toute application :

  • vous pouvez ouvrir une console (personnellement j'ai associé cette opération d'ouverture de console à un raccourci clavier et ça se fait donc en un tournemain), puis taper unison suivi d'Entrée
  • vous pouvez créer dans le Menu K un item Unison et lancer l'application ensuite par ce moyen
  • vous pouvez créer une icône sur la barre des tâches (Kicker) ou sur un bureau et cliquer l'icône pour lancer Unison.

L'interface graphique d'Unison

L'interface au lancement

Unison ouvre une fenêtre et vous propose les différents profils actuellement disponibles pour l'utilisateur qui a lancé Unison.

Dans notre cas nous verrons donc quelque chose comme cours.prf et nous cliquerons sur cette ligne pour lancer Unison avec le profil cours.prf.

Affichage après comparaison des répliques

Unison se met en devoir de comparer les deux répliques afin de déterminer si des changements ont eu lieu depuis le dernier lancement du profil.

Après avoir effectué cet examen, Unison vous fera de simples propositions : ce sera à vous de les accepter ou de modifier ce qu'Unison vous aura proposé. Vous restez maître de la situation… Naturellement, vous pouvez aussi décider de faire confiance systématiquement à Unison et de tout accepter les yeux fermés...

Si un fichier a changé sur la réplique a mais pas sur la réplique b, Unison vous proposera de « propager » le changement de a vers b : ceci est représenté par une flèche verte allant de a vers b. Si vous ne faites rien, lorsque vous presserez l'icône Go, qui permet de lancer la propagation, Unison propagera ce changement. Mais vous pouvez aussi inverser le sens de la flèche en pressant sur une icône représentant la flèche appropriée dans la barre de menu d'Unison : dans ce cas Unison propagera la version de b vers a lorsque vous presserez sur Go. Vous pouvez aussi décider de demander à Unison de ne pas modifer ce fichier : pour cela presser l'icône Skip les deux versions resteront alors intactes quand vous aurez pressé sur Go.

Si un fichier a été modifé sur les deux répliques, Unison considèrera par défaut qu'il y a conflit (mais voir aussi page suivante) et représentera cela par un point d'interrogation, si vous ne faites rien, Unison ne modifiera le fichier sur aucune réplique, mais vous pouvez aussi décider de propager le changement dans un sens ou dans un autre en cliquant sur l'icône de flèche appropriée.

Comment propager les changements à partir de l'interface graphique

Une fois que vous avez ainsi examiné les propositions d'Unison (ou décidé que vous lui faites confiance pour tout), vous lancez les changements en cliquant sur l'icône Go.

Un profil sur une machine Windows

Sur une machine Windows XP le fichier .unison devrait se trouver en C:\Documents and Settings\toto\.unison et le fichier de profil .prf pourrait être quelque chose comme ce qui suit (je suppose, à titre d'exemple, que le répertoire à synchroniser, sur la clé USB ou le disque dur externe, serait identifié sur cette machine comme F:/Documents/Cours) :

\# cours.prf - sur machine Windows

\# Les répliques à synchroniser
root = F:/Documents/Cours/
root = C:/Documents and Settings/toto/Mes Documents/Cours/
Non, non : ce n'est pas une erreur, dans un profil d'Unison, vous devez bel et bien indiquer les chemins des répliques sous Windows avec des barres obliques et non pas avec des barres obliques inverses...

Bien entendu pour une synchronisation entre deux machines Linux, les choses sont encore plus simples et les deux profils tout à fait analogues.


Pour synchroniser à l'ancienne, et sans propagation des suppressions, avec la commande cp et son option -u, voir Emploi de -u pour une synchronisation.

vfat ou ext3 pour un disque intermédiaire Linux/Windows ?

Si vous synchronisez un répertoire entre une machine Windows et une machine Linux vous pourriez être tenté d'installer sur la partition du disque intermédiaire, clé USB ou disque dur externe, le système de fichiers vfat reconnaissable directement par les deux systèmes. vfat ne reconnaît pas les permissions et ne distingue pas les majuscules des minuscules dans les noms de fichiers, aussi convient-il dans ce cas de désactiver la synchronisation des permissions et la distinction de casse. Vous obtiendrez cela en utilisant dans le profil les options ignorecase et perms, de la façon suivante :

\# cours.prf - pour synchro ext3/vfat

\# Les répliques à synchroniser
root = /home/toto/Documents/Cours/
root = /mnt/SauvDD/Documents/Cours/

\# Options pour vfat
ignorecase = \true
perms = 0

Par ailleurs, vfat ne permettra pas de traiter correctement des noms de fichiers ou répertoires contenant des accents ou certains caractères particuliers (\,/, * etc.).

Mais il faut savoir qu'il est maintenant possible de rendre les machines Windows XP capables de reconnaître le format linuxien ext3 (ou ext2).

Il suffit pour cela d'installer sur la machine Windows EXT2IFS. Dans ce cas, il devient inutile d'utiliser ignorecase et perms dans le profil situé sur la machine Linux.

Il est alors possible d'avoir aussi un système ext3 sur votre disque intermédiaire (clé USB ou partition de disque dur externe) : et cela fonctionnera plutôt mieux, bien sûr...

Attention : si vous utilisez EXT2IFS sous Windows, ne montez pas les partitions racine ou système ou sensibles de votre machine Linux sur Windows de cette façon, si du moins vous voulez éviter qu'elles ne soient à la merci des failles de Windows.

Accélérer les choses sur le versant Windows

Sur une machine Windows vous accélèrerez considérablement la vitesse de la synchronisation en activant dans le profil l'option fastcheck : les contenus des fichiers ne seront plus comparés, seule la date sera prise en compte pour déterminer la nécessité d'une mise à jour. Le gain de temps est spectaculaire sur une machine lente ou si les répertoires sont volumineux.

Pour les cas, sans doute peu fréquents, où des fichiers de même date auraient des contenus différents, vous pouvez, une fois de temps en temps, lancer Unison en commentant (en faisant précéder d'un dièse #), la ligne contenant cette option dans le profil.

On pourrait donc avoir sur une machine Windows quelque chose comme :

\# cours.prf - sur machine Windows

\# Les répliques à synchroniser
root = F:/Documents/Cours/
root = C:/Documents and Settings/toto/Mes Documents/Cours/

\# Options pour Windows
fastcheck = \true

Sous Linux cette option est activée par défaut.

Le journal d'Unison

Unison peut tenir un journal de toutes les actions effectuées et des messages d'erreur, pour cela utiliser les options log et logfile (cette dernière option pour déterminer l'emplacement du journal).

Cela peut donc donner ceci :

\# cours.prf - sur machine Linux

\# Les répliques à synchroniser
root = /home/toto/Documents/Cours/
root = /mnt/SauvDD/Documents/Cours/

\# Options du journal
log = \true
logfile = /home/toto/.unison

Un journal sera désormais tenu, et ce sera le fichier /home/toto/.unison/unison.log.

Eventuellement, paramétrez logrotate (voir man logrotate) pour limiter sa croissance...

Page suivante : Guide pous Unison - 2 : Sauvegarder un répertoire


Auteur ptyxs (23 février 2007) - en cours

 


fr en

RSS

Créateur: ptyxs le 2007/02/23 12:38
(c) Mandriva 2007
18888888