Unison... les données !
Monday, May 19, 2008 10:14:14 PM
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 ...
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é

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

Oui je ferais un billet aussi dessus.
++







