Les Crash-Devs d'un Passionné

Synchronisation avec unison

/Catégorie/ubuntu

Temps de lecture : 2 minutes

Il faut commencer par installer le paquet nécessaire

sudo apt-get install unison

Puis il faut créer le nouveau profil (ici david). Pour cela lancer

unison david

Une erreur vous indique que le profil n'existe pas, ne pas en tenir compte il vient de créer le fichier ~/.unison/david.prf à votre place. 

Ensuite il suffit d'éditer ce fichier avec ses paramètres

clipboard
Copier le code
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
nano ~/.unison/david.prf
>># Chemin local
root=/home/david/Documents
# Chemin distant
root=ssh://david@hote:2222//media/david/sync/

# Autorise les logs
log=true
logfile=/home/david/.unison/log

# Autoriser les synchronisations sans même une seule confirmation
batch=true

# Synchro des dates
times = true

Et lancer la synchronisation avec cette commande

unison david

Il peut être fatidieux de lancer la synchro à la main, je vais vous proposer de faire cela lors de la connection au wifi de votre box !

Sous Ubuntu 10.04, il faut placer le fichier dans le dossier /etc/network/if-up.d

clipboard
Copier le code
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/bin/sh

# Récupère le SSID du wifi
CHECK_SSID=`iwconfig "$IFACE" | sed -r -n '/SSID/{s/.*SSID:"([^"]+)".*/\1/g;p;q}'`

if [ "$IFACE" = "wlan0" ] && [ "$CHECK_SSID" = "Freebox-123456" ] ; then
   if [ -x /home/david/bash/sync-unison.sh ] ; then
      . /etc/profile
      export DISPLAY=:0
      export XAUTHORITY=/home/david/.Xauthority
      xterm -T "Synchronisation de home" -hold -e '/home/david/bash/sync-unison.sh'
   fi
fi
exit 0

Remplacer dans le script Freebox-123456 par votre nom de réseau wifi de votre *box. 

Vous remarquerez que ce code, lorsque la connexion wifi a réussi, lance un script placé dans /home/david/bash/sync-unison.sh. Il contient

export HOME=/home/david 

unison david -batch

Maintenant à chaque connexion sur votre réseau wifi, une fenêtre s'affichera pour lancer la synchronisation après avoir saisi le mot de passe SSH.