Outils pour utilisateurs

Outils du site


utilisations:unison

Unison

Installation

apt-get install unison
Utilisation

Local:

Unisson peut etre utilisé en local ou en distant à travers ssh. Commençons par l'utilisation local.

Je vais créer deux dossiers dans mon home:

mkdir ~/rep1
mkdir ~/rep2

Vous pouvez maintenant créer des sous répertoires et des fichiers dans les répertoires rep1 et rep2.

touch ~/rep1/fichier011
touch ~/rep1/fichier012
touch ~/rep2/fichier021
mkdir ~/rep1/rep01
touch ~/rep1/rep01/fichier013

ce qui donne:

tree /home/cemoi/rep1/ 
/home/cemoi/rep1/ 
|-- fichier011 
|-- fichier012 
`-- rep01 
    `-- fichier013 

1 directory, 3 files 


tree /home/cemoi/rep2/ 
/home/cemoi/rep2/ 
`-- fichier021 

0 directories, 1 file 

Synchronisons le contenu de ces deux dossiers

unison ~/rep1 ~/rep2 
Contacting server... 
Connected [//cemoi//home/cemoi/rep1 -> //cemoi//home/cemoi/rep2] 
Looking for changes 
Warning: No archive files were found for these roots, whose canonical names are: 
	/home/cemoi/rep1 
	/home/cemoi/rep2 
This can happen either 
because this is the first time you have synchronized these roots, 
or because you have upgraded Unison to a new version with a different 
archive format.  

Update detection may take a while on this run if the replicas are 
large. 

Unison will assume that the 'last synchronized state' of both replicas 
was completely empty.  This means that any files that are different 
will be reported as conflicts, and any files that exist only on one 
replica will be judged as new and propagated to the other replica. 
If the two replicas are identical, then no changes will be reported. 

If you see this message repeatedly, it may be because one of your machines 
is getting its address from DHCP, which is causing its host name to change 
between synchronizations.  See the documentation for the UNISONLOCALHOSTNAME 
environment variable for advice on how to correct this. 

Donations to the Unison project are gratefully accepted: 
http://www.cis.upenn.edu/~bcpierce/unison 

Press return to continue.[<spc>]  Reconciling changes 

rep1           rep2               
file     ---->            fichier011  [f]  
file     ---->            fichier012  [f]  
         <---- file       fichier021  [f]  
dir      ---->            rep01  [f]  

Proceed with propagating updates? [] y 
Propagating updates 

 
UNISON 2.27.57 started propagating changes at 14:22:42 on 12 Apr 2010 
[BGN] Copying fichier011 from /home/cemoi/rep1 to /home/cemoi/rep2 
[END] Copying fichier011 
[BGN] Copying fichier012 from /home/cemoi/rep1 to /home/cemoi/rep2 
[END] Copying fichier012 
[BGN] Copying fichier021 from /home/cemoi/rep2 to /home/cemoi/rep1 
[END] Copying fichier021 
[BGN] Copying rep01 from /home/cemoi/rep1 to /home/cemoi/rep2 
[END] Copying rep01 
UNISON 2.27.57 finished propagating changes at 14:22:42 on 12 Apr 2010 


Saving synchronizer state 
Synchronization complete  (4 items transferred, 0 skipped, 0 failures) 

Je relance la même commande pour voir la message obtenu:

unison ~/rep1 ~/rep2 
Contacting server... 
Connected [//cemoi//home/cemoi/rep1 -> //cemoi//home/cemoi/rep2] 
Looking for changes 
  scanning fichier021 
Reconciling changes 
Nothing to do: replicas have not changed since last sync.

Il n'y a rien à faire:aucun fichier n'a été modifié depuis la dernière sauvegarde.

Pour faire des opérations plus avancées il est plus rapide de se servir du fichier de configuration d'unison qui se trouve dans ~/.unison/default.prf Nous allons créer notre propre fichier de configuration:sync_home.prf

nano ~/.unison/sync_home.prf


# Unison preferences file 
#repertoire de destination de la replication 
root = /home/cemoi/replication_unison 
#repertoire racine de l'utilisateur 
root = /home/cemoi 
#chemin du repertoire source rep1 à repliquer dans /home/cemoi/replication_unison qui se trouve dans /home/cemoi 
path = rep1 
#chemin du repertoire source rep2 à repliquer dans /home/cemoi/replication_unison qui se trouve dans /home/cemoi 
path = rep2

n'oubliez pas de créer le répertoire replication_unison:

mkdir replication_unison

unison sync_home.prf 
Contacting server... 
Connected [//cemoi//home/cemoi -> //cemoi//home/cemoi/replication_unison] 
Looking for changes 
Warning: No archive files were found for these roots, whose canonical names are: 
	/home/cemoi/replication_unison 
	/home/cemoi 
This can happen either 
because this is the first time you have synchronized these roots, 
or because you have upgraded Unison to a new version with a different 
archive format.  

Update detection may take a while on this run if the replicas are 
large. 

Unison will assume that the 'last synchronized state' of both replicas 
was completely empty.  This means that any files that are different 
will be reported as conflicts, and any files that exist only on one 
replica will be judged as new and propagated to the other replica. 
If the two replicas are identical, then no changes will be reported. 

If you see this message repeatedly, it may be because one of your machines 
is getting its address from DHCP, which is causing its host name to change 
between synchronizations.  See the documentation for the UNISONLOCALHOSTNAME 
environment variable for advice on how to correct this. 

Donations to the Unison project are gratefully accepted: 
http://www.cis.upenn.edu/~bcpierce/unison 

Press return to continue.[<spc>]    scanning rep1/fichier021 
Reconciling changes 

replicati...   cemoi              
         <---- dir        rep1  [f]  
         <---- dir        rep2  [f]  

Proceed with propagating updates? [] y 
Propagating updates 


UNISON 2.27.57 started propagating changes at 15:02:50 on 12 Apr 2010 
[BGN] Copying rep1 from /home/cemoi to /home/cemoi/replication_unison 
[END] Copying rep1 
[BGN] Copying rep2 from /home/cemoi to /home/cemoi/replication_unison 
[END] Copying rep2 
UNISON 2.27.57 finished propagating changes at 15:02:50 on 12 Apr 2010 


Saving synchronizer state 
Synchronization complete  (2 items transferred, 0 skipped, 0 failures) 

Je relance la même commande pour voir la message obtenu:
unison sync_home.prf 
Contacting server... 
Connected [//cemoi//home/cemoi -> //cemoi//home/cemoi/replication_unison] 
Looking for changes 
  scanning rep1/fichier021 
Reconciling changes 
Nothing to do: replicas have not changed since last sync. 

Je regarde l'état du répertoire de ou la réplication à eu lieux:

tree /home/cemoi/replication_unison/ 
/home/cemoi/replication_unison/ 
|-- rep1 
|   |-- fichier011 
|   |-- fichier012 
|   `-- rep01 
|       `-- fichier013 
`-- rep2 
    `-- fichier021 

3 directories, 4 files 

Tout est bien là! ;-)

Nous allons étendre les fonctions de notre fichier sync_home.prf

Rajoutons une règle pour filtrer des fichiers et/ou des répertoires:

#fichiers à ignorer
ignore = Name {*.bin, toto.back, *.docx}
#repertoire à ignorer
ignore = Path {rep2}

Ajoutons la gestions de backup des fichiers supprimés avec la conservation des 3 dernières versions histoire de pouvoir récupérer un/des fichiers supprimés par erreur:

##gestion des backups 
#conservons une copie de tous les fichiers supprimes 
backup = Name * 
#conserve les 3 dernieres versions des fichiers supprimes 
maxbackups = 3 
utilisations/unison.txt · Dernière modification: Sun May 9 16:08:46 2010 par cemoi