Un bruit de liberté

Toujours PLUS de +

Unison... les données !

,

Cette semaine, j'ai découvert Unison.

Un programme qui permet de synchroniser des repertoires ou des fichiers.
Il peux faire la synchronisation des données entre 2 pc à travers SSH par exemple (un tunnel sécurisé), ou encore, synchroniser votre clef mp3 avec un dossier défini. Ou même toute votre comptabilité sur votre disque-dur externe...

Dans mon cas, synchroniser Firefox et autres logiciels, entre mon PC portable et mon PC fixe, en local ou à travers internet ...

A l'instar de Rsync que je trouve assez obscure dans sa configuration, unison permet de configurer de manière simple, les repertoires (ou fichiers) au moyen d'un fichier de configuration SUPER simple de compréhension.

En ce qui concerne sont installation et sa configuration, voici deux liens indispensable :
La doc d'ubuntu-fr pour l'installation
La doc du wiki mandriva pour la configuration
Attention tout de même, il parrait que l'interface graphique ne prend pas en compte le multi profil. Par contre çà fonctionne en ligne de commande. TRès bien car c'est ce que j'ai utilisé wink

Dans mon cas, Je souhaitais synchroniser à travers Internet ou dans mon réseau local, mes données et fichiers de configurations entre mes deux PC. J'ai alors décidé de créer deux profil. Un premier configuré pour utiliser l'@ip local de mon PC fixe. Puis un second fichier configuré pour utiliser l'@ de mon PC sur internet (que je retrouve grâce au système dynDNS).
Ensuite, j'ai modifié un script trouvé sur internet (désolé, j'ai perdu la source) me permettant selon certaine vérifications, de lancer automatiquement la synchronisation à travers le réseau local si il détecte mon pc fixe sur ce même réseau ou alors par internet le cas échéant.


voici un exemple de configuration qui se trouvent dans ~/.unison pour synchroniser Pidgin, Xchat, Mes documents, Mes Images et mon Firefox entre mes 2 PC :
je l'ai appeler local.prf
# PATHETIK@Home - synchronisation avec PATHETIK en local

# les répliques à synchroniser
root = /home/user/
root = ssh://user@192.168.1.20//home/user/

#path
path = .mozilla/
path = Documents/
path = Images/
path = Musique/
path = .purple/
path = .xchat2/
path = .config/

# options
log = true
logfile = /home/user/.log_unison


J'en ai créé un second que j'ai appelé internet.prf
# PATHETIK@Net - synchronisation avec PATHETIK à travers internet

# les répliques à synchroniser
root = /home/user/
root = ssh://user@xxxxx.dyndns.org:Port//home/user/

#path
path = .mozilla/
path = Documents/
path = .purple/
path = .xchat2/
path = .config/

# options
log = true
logfile = /home/user/.log_unison


Voici le scripts synchro.sh d'automatisation :
#!/bin/bash

#Script synchronisation de documents avec mon serveur
#Petit script écrit rapidement par nahelou
#modifier par FreedomSound.
#Il permet d'établir une connexion à la demande, et utilise des boites de dialogues GTK / gnome
#Ce script est librement modifiable
#
#Pensez à rendre ce script exécutable (un petit  `chmod +x synchro.sh` par exemple dans un term)

#Test de la connexion internet
#ping google.com -c 2 | zenity --progress --text="Détection d'une connexion internet en cours..." --pulsate --auto-close

#Test de l'existence de la machine
ipPAT=`net lookup PATHETIK` #PATHETIK étant le nom de ma machine sur le réseau
        if [ "$ipPAT" != "192.168.1.20" ]; then
         zenity --question --title="Synchronisation" --text="Je n'ai pas trouver PATHETIK en local. Souhaites-tu continuer par internet ? (o/n)"
         read reponse
        if [ $? = 0 ]; then
                profile=internet
          else
                exit
        fi
         else
           profile=local
        fi


cd /home/user
log="/home/user/.log_sync.txt"

#On pose la question
zenity --question --title="Synchronisation" --text="Lancer la synchronisation des documents sur le serveur ?"

#si annuler > on stoppe le script
if [ $? = 1 ]; then
        zenity --error --title="Informations" --text="Synchronisation annulée"
        exit 1
fi

#on lance la commande + Cela affiche une petite barre de progression qui indique à l'utilisateur de patienter un peu
unison -logfile $log -silent $profile | zenity --progress --title="Synchronisation" --text="Synchronisation en cours..." --pulsate --auto-close
if [ $? = 1 ]; then
      zenity --error --title="Informations" --text="Synchronisation annulée"
        exit
  fi
if [ -f $log ]
then
#on parse le fichier de log dans la variable message / nettoyage au passage avec grep
message=`cat $log | grep -E 'Sync|UNISON|END|Fatal Error'`
zenity --info --title="Informations sur la Synchronisation" --text="$message"
rm $log
else
message="Rien à synchroniser !"
fi
exit


Voilà.

Prochainement, intégration de la synthèse vocale pour la lecture "à voix haute" des évenements wink
Oui je ferais un billet aussi dessus.

++

Voreppe Mon amour !TwinTact - MOdified !

Write a comment

New comments have been disabled for this post.

May 2012
M T W T F S S
April 2012June 2012
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31