Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
unison [Le 19/03/2012, 19:16] – [Synchroniser les périphériques USB] 2.3.208.226 | unison [Le 06/02/2019, 22:09] (Version actuelle) – [Unison en ligne de commande] 88.191.160.194 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | ====== Unison ====== | ||
+ | |||
+ | **Unison** est un logiciel de synchronisation, | ||
+ | |||
+ | Rsync est davantage destiné à réaliser des sauvegardes de routine. | ||
+ | À noter que rsync peut prendre le rôle d' | ||
+ | |||
+ | Unison reste l' | ||
+ | |||
+ | Unison est multi-plateforme et peut fonctionner à travers **SSH** **RSH** ou les **sockets**. | ||
+ | Avec lui, vous pourrez réaliser des synchronisations entre des répertoires sous Windows, Mac et Linux. | ||
+ | |||
+ | Si un fichier est créé, supprimé ou s'il a été modifié dans l'un des deux répertoires, | ||
+ | |||
+ | Il existe deux façons d' | ||
+ | * soit par le biais de l' | ||
+ | * soit en console grâce à la commande **'' | ||
+ | |||
+ | Le logiciel n'est plus dans un stade de // | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | [[: | ||
+ | Pour l' | ||
+ | |||
+ | < | ||
+ | Pour que la synchronisation fonctionne, il faut que la version d' | ||
+ | </ | ||
+ | ===== Unison en mode graphique ===== | ||
+ | |||
+ | Vous trouverez une icône dans **// | ||
+ | |||
+ | Lors du premier lancement d' | ||
+ | |||
+ | ==== Notion de profil ==== | ||
+ | |||
+ | Le profil est un fichier de configuration pour une synchronisation donnée, contenant les répertoires à synchroniser ainsi que des options. | ||
+ | |||
+ | Unison appliquera ce profil à chaque appel du programme. | ||
+ | |||
+ | Lors du premier lancement, Unison demande un premier répertoire local (c' | ||
+ | Puis un autre répertoire, | ||
+ | * local (idéal pour clé USB, disque dur externe...) | ||
+ | * distant ([[wpfr> | ||
+ | |||
+ | Cet assistant a alors créé un profil. | ||
+ | |||
+ | Unison établit une liste entre le répertoire 1 (celui de gauche sur le tableau) et le répertoire 2 (celui de droite). | ||
+ | |||
+ | En fonction de ce qu'il trouve comme changements entre les 2 répertoires il proposera de faire une action. | ||
+ | |||
+ | L' | ||
+ | |||
+ | ==== Limite de l' | ||
+ | |||
+ | On peut noter l' | ||
+ | |||
+ | <note tip> | ||
+ | Astuce : un profil est enregistré dans votre répertoire personnel dans un dossier '' | ||
+ | Vous pouvez donc [[: | ||
+ | Voir la section [[# | ||
+ | </ | ||
+ | |||
+ | ===== Unison en ligne de commande ===== | ||
+ | |||
+ | Les commandes sont assez simples : | ||
+ | |||
+ | unison | ||
+ | |||
+ | => Cette commande lance Unison avec les données du profil par défaut ('' | ||
+ | |||
+ | unison monprofil | ||
+ | |||
+ | => lance Unison avec les données du fichier '' | ||
+ | |||
+ | unison -option | ||
+ | |||
+ | => lance Unison avec les options indiquées en paramètres (détaillées plus bas. Voir [[# | ||
+ | |||
+ | unison chemin1 chemin2 -option | ||
+ | |||
+ | => lance la synchronisation entre chemin1 et chemin2 avec les options : par exemple -times pour conserver la date originale ! | ||
+ | |||
+ | ==== Peaufiner les profils ==== | ||
+ | |||
+ | Unison enregistre ses profils dans le dossier '' | ||
+ | Tout d' | ||
+ | |||
+ | mkdir ~/.unison | ||
+ | |||
+ | Pour modifier le profil principal, il suffit d' | ||
+ | |||
+ | Un fichier de profil Unison respecte un certain ordre : | ||
+ | |||
+ | * en premier, le répertoire local : | ||
+ | |||
+ | root=/ | ||
+ | |||
+ | * puis le répertoire distant : | ||
+ | |||
+ | root=/ | ||
+ | |||
+ | * éventuellement les sous-répertoires distants à sélectionner, | ||
+ | |||
+ | path=./ | ||
+ | path=./ | ||
+ | <note important> | ||
+ | * enfin, les options. | ||
+ | |||
+ | === Les options === | ||
+ | |||
+ | <note help> | ||
+ | Les options peuvent être utilisées : | ||
+ | * soit dans les profils, sous la forme : '' | ||
+ | * soit en ligne de commande comme paramètres : '' | ||
+ | </ | ||
+ | |||
+ | Voici quelques options : | ||
+ | |||
+ | * Limiter la synchronisation à certains dossiers ou types de fichiers : | ||
+ | |||
+ | path=./ | ||
+ | path=./ | ||
+ | # Le joker est encore une " | ||
+ | |||
+ | * Rajouter une liste de fichiers ou répertoires à ignorer : | ||
+ | |||
+ | ignore= Path dossieraignorer/ | ||
+ | ignore= Name *.odt | ||
+ | |||
+ | * Sauvegarde des échanges dans un répertoire : | ||
+ | |||
+ | backupdir=/ | ||
+ | |||
+ | Par défaut, Unison fait 2 sauvegardes | ||
+ | |||
+ | * Valider les propositions présentées : | ||
+ | |||
+ | auto=true | ||
+ | |||
+ | * Enregistrer un journal pour les transferts : | ||
+ | |||
+ | log=true | ||
+ | logfile=/ | ||
+ | |||
+ | * automatiser toutes les synchronisations sans même une seule confirmation : | ||
+ | |||
+ | batch=true | ||
+ | |||
+ | * Pour les médias amovibles : | ||
+ | |||
+ | mountpoint=docs/ | ||
+ | |||
+ | * Silence : | ||
+ | |||
+ | silent=true | ||
+ | |||
+ | * Booster Windows : | ||
+ | |||
+ | fastcheck=true | ||
+ | |||
+ | * Ne pas tenir compte des permissions : | ||
+ | |||
+ | perms=0 | ||
+ | |||
+ | * Synchronisation des dates : | ||
+ | |||
+ | times=true | ||
+ | |||
+ | * Conserver la version la plus récente du ficher (à utiliser avec times=true) : | ||
+ | |||
+ | force=newer | ||
+ | |||
+ | * Conserver le propriétaire et le groupe propriétaire : | ||
+ | |||
+ | owner = true | ||
+ | group = true | ||
+ | |||
+ | === Exemple simple de profil === | ||
+ | |||
+ | < | ||
+ | # | ||
+ | root=/ | ||
+ | #le chemin du périphérique (à condition que ce soit toujours le même) | ||
+ | root=/ | ||
+ | |||
+ | #puis les sous-répertoires | ||
+ | path=documents | ||
+ | path=musique/ | ||
+ | </ | ||
+ | |||
+ | Avec ce profil, Unison ne synchronisera que les répertoires '' | ||
+ | |||
+ | <note important> | ||
+ | L' | ||
+ | Elle permet à Unison de vérifier que la clé USB est bien présente et donc d' | ||
+ | </ | ||
+ | |||
+ | Pour la synchronisation de dossiers distants (avec SSH, par exemple), voir la section [[# | ||
+ | |||
+ | ===== Précisions ===== | ||
+ | |||
+ | ==== Synchroniser les périphériques USB ==== | ||
+ | |||
+ | === Problèmes de droits === | ||
+ | |||
+ | Dans le cas où vous désirez établir une synchronisation avec une clé USB, un disque dur externe, une carte SD, etc, tout périphérique en FAT ou FAT32, vous risquez d' | ||
+ | |||
+ | En effet, ces systèmes de fichiers ne gèrent pas les droits et les notions de propriétaires. | ||
+ | |||
+ | Par défaut, Ubuntu donne des droits root temporaires lors du montage du périphérique. | ||
+ | |||
+ | Il existe plusieurs moyens d' | ||
+ | * La méthode la plus simple (elle ne touche pas aux fichiers de montage du périphérique) consiste à ajouter la ligne " | ||
+ | |||
+ | * reformater le périphérique USB (en ext2, ext3 ou ext4 par exemple). Mais il ne sera pas reconnaissable par les autres systèmes d' | ||
+ | |||
+ | * monter le périphérique manuellement en indiquant le propriétaire, | ||
+ | |||
+ | mount -o uid=1000 ... | ||
+ | |||
+ | * Indiquer le montage de votre clé dans le fichier ''/ | ||
+ | |||
+ | /dev/sda1 / | ||
+ | |||
+ | <note tip> | ||
+ | Si à l' | ||
+ | </ | ||
+ | |||
+ | === Différencier plusieurs périphériques USB === | ||
+ | |||
+ | Imaginez que vous ayez plusieurs périphériques USB, comme une clé USB, un disque dur externe, un lecteur de carte USB, etc. | ||
+ | Votre disque dur externe peut prendre ainsi comme point de montage soit '' | ||
+ | Pour éviter cela il faut utiliser l'UUID (plus de renseignements sur [[uuid_et_label]] ou sur [[tutoriel/ | ||
+ | |||
+ | Pour connaître le numéro UUID de votre périphérique USB, taper dans un terminal : | ||
+ | |||
+ | ls -l / | ||
+ | |||
+ | Nous noterons par la suite // | ||
+ | |||
+ | Puis créer un point de montage fixe : | ||
+ | |||
+ | sudo mkdir /media/sync | ||
+ | |||
+ | Puis [[: | ||
+ | |||
+ | UUID=uuid_du_peripherique /media/sync vfat user, | ||
+ | |||
+ | et voilà, plus de soucis ! | ||
+ | |||
+ | < | ||
+ | Une variante est possible avec le label de votre periphérique USB. | ||
+ | Dans fstab, à la place de '' | ||
+ | </ | ||
+ | |||
+ | === La sécurité avec l'USB === | ||
+ | |||
+ | Le risque avec les médias amovibles, c'est qu'ils peuvent ne pas être présents. Pour éviter ce problème, il existe une option d' | ||
+ | |||
+ | < | ||
+ | Cette option existe depuis la version 2.17 d' | ||
+ | </ | ||
+ | |||
+ | === Lancer automatiquement Unison lors du branchement du périphérique === | ||
+ | |||
+ | == udev == | ||
+ | |||
+ | La solution la plus logique serait d' | ||
+ | |||
+ | Pour lancer un script à partir d' | ||
+ | ''/ | ||
+ | |||
+ | FIXME À tester ! (attention, une règle erronée peut vous conduire au désastre) | ||
+ | |||
+ | == Script sur la clé USB == | ||
+ | |||
+ | Il faut autoriser le lancement des scripts en allant dans **// | ||
+ | Ensuite placer un simple script sur votre clé, la synchronisation s' | ||
+ | |||
+ | ==== Synchroniser des dossiers distants ==== | ||
+ | |||
+ | La synchronisation entre plusieurs dossiers distants est très facile avec Unison, il suffit de comprendre qu'il faut un Unison par machine, contrairement au cas " | ||
+ | |||
+ | Requis : | ||
+ | * Un Unison par machine (Linux, Mac ou Windows); | ||
+ | * Un service d' | ||
+ | * La **même version** d' | ||
+ | |||
+ | Le fait d' | ||
+ | Il suffit d'en configurer un qui s' | ||
+ | |||
+ | === Synchroniser à travers ssh === | ||
+ | |||
+ | La méthode est simple, installer Unison sur chaque machine. | ||
+ | |||
+ | <note tip> | ||
+ | Paquet [[apt:// | ||
+ | |||
+ | Je rappelle qu'il faut avoir la **même version**, et c'est le point délicat, en effet entre deux Ubuntu, pas de problèmes, par contre, lorsque vous utilisez plusieurs OS alors cela se complique. | ||
+ | |||
+ | Au 07/2009, la dernière version stable et commune est la 2.27.57. | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | La machine distante doit permettre un accès SSH. Pour cela, installez par exemple le paquet [[apt:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | Le chemin vers la machine distante (à définir dans le profil) sera sous la forme : | ||
+ | |||
+ | root=ssh:// | ||
+ | | ||
+ | <note tip>Dans le cas où le port de communication avec ssh n'est pas le port 22 par défaut, il convient de l' | ||
+ | Cela se fait à travers le paramètre sshargs à ajouter au profil. Exemple : | ||
+ | sshargs = -p 12345 -C | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | === Un autre exemple de profil === | ||
+ | |||
+ | Voici un autre exemple de profil (réalisable aussi avec l' | ||
+ | |||
+ | < | ||
+ | # | ||
+ | root = / | ||
+ | # | ||
+ | root = ssh:// | ||
+ | |||
+ | # Options pour booster Windows | ||
+ | fastcheck = true | ||
+ | |||
+ | # Options du journal | ||
+ | log = true | ||
+ | logfile = / | ||
+ | |||
+ | #zap les permissions | ||
+ | perms = 0 | ||
+ | |||
+ | #synchro des dates | ||
+ | times = true | ||
+ | </ | ||
+ | |||
+ | === Exemple de script si l'IP change souvent === | ||
+ | Si l' | ||
+ | < | ||
+ | FILE="/ | ||
+ | echo " | ||
+ | echo -n ">" | ||
+ | read IP | ||
+ | if [ ! $IP = " | ||
+ | then | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | fi | ||
+ | unison auto | ||
+ | echo "" | ||
+ | echo " | ||
+ | </ | ||
+ | |||
+ | ===Monter un partage au démarrage=== | ||
+ | |||
+ | Editer /etc/fstab afin de monter automatiquement un dossier partagé (ex: samba, Nfs) au démarrage :< | ||
+ | |||
+ | Ajouter :< | ||
+ | |||
+ | ou si vous avez des problèmes d' | ||
+ | < | ||
+ | |||
+ | Remplacer : | ||
+ | * ADRESSE_RESEAU par l' | ||
+ | * REPERTOIRE1 par le répertoire sur le serveur | ||
+ | * REPERTOIRE1 par le répertoire local | ||
+ | * LEPASSE distant | ||
+ | * LUTILISATEUR distant | ||
+ | |||
+ | Vous pouvez si vous le désirez changer /media par /mnt . | ||
+ | |||
+ | === Problèmes avec l' | ||
+ | |||
+ | Avec la version 2.32.52-1 il peut s' | ||
+ | |||
+ | Pour résoudre ce conflit il faut [[: | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | Source : http:// | ||
+ | </ | ||
+ | |||
+ | =====Automatiser la synchronisation===== | ||
+ | |||
+ | Utiliser [[gnome-schedule]] (ou éditer le fichier [[cron|/ | ||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * **(en)** [[http:// | ||
+ | * **(fr)** [[https:// | ||
+ | * **(fr)** [[http:// | ||
+ | * **(fr)** [[https:// | ||
+ | * **(fr)** [[http:// | ||
+ | * **(fr)** [[https:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // |