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 21/01/2013, 17:00] – [Synchroniser les périphériques USB] 89.217.141.91 | 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:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
