Portable windows XP
On installe Cygwin puis on choisit dans l’interface les paquets supplémentaires suivants : Openssh, Make, Ocaml, Python. Petit guide illustré (bien noter la modification du « Path » windows).
Installation d’Unison
Lancez le terminal Cygwin et allez dans un répertoire qui vous plaît ou créez en un.
#Ici on crée le répertoire unison-code mkdir unison-code #On rentre dedans cd unison-code
Compilation comme sur Ubuntu :
#Comme sur Ubuntu on récupère les sources svn checkout https://webdav.seas.upenn.edu/svn/unison cd trunk #on compile en mode "texte" make UISTYLE=text # on récupère nos fichiers pour les mettre au bon endroit sudo cp src/unison /usr/local/bin/ sudo cp src/fsmonitor.py /usr/local/bin/
Installation du serveur OpenSSH
Ensuite il faut configurer le serveur SSH que vous avez installé sur le portable XP au début (le paquet Openssh). Lancez le terminal Cygwin puis lancez la commande :.
ssh-host-config -y
Le « -y » répond oui à toutes les questions par défaut, ce qui nous convient. Quand on vous demande ensuite « CYGWIN= » pour demande l’émulateur de terminal à utiliser, tapez ce qui suit :
Mintty ntsec
Ensuite il faut lancer le service (qui démarrera tout seul les fois suivantes)
cygrunsrv -S sshd
Bien penser à ouvrir le port 22 dans le parefeu Windows pour votre PC fixe uniquement (on n’est jamais trop prudent).
A faire sur le PC fixe sous Ubuntu :
Enfin il convient d’installer aussi un serveur Openssh pour pouvoir recevoir des connexions ssh (chiffrées donc).
sudo apt-get install openssh-server
On fait la même chose sur le parefeu pour ne permettre la connexion que de l’ordinateur portable sur votre réseau local. J’utilise GUFW (pour Graphical uncomplicated firewall) mais chacun ses goûts.
Vous devriez maintenant pouvoir vous connecter du portable ou du PC fixe. Exemple du PC portable :
ssh login_ubuntu@192.168.xx.xx
Il doit vous demander le mot de passe et ensuite vous laisser entrer. Idem en sens inverse du fixe vers le portable (Attention les logins Windows sont sensibles à la casse !).
Une fois que ça marche il faut sécuriser tout ça (et ne plus permettre de se connecter avec mot de passe). Voici donc un tutoriel très bien fait pour sécuriser un peu et ajouter les clefs SSH qui permettent de se connecter d’un PC à l’autre sans mot de passe. Lisez tout avant de faire vos modifications !
Et maintenant on teste le tout ! Mettez des fichiers dans le répertoire Image sur le PC et le fixe. Du Pc fixe tapez :
unison masynchro
« masynchro » est le nom du profil que nous avons défini dans l’étape précédente. Unison devrait vous proposer des actions à faire, tapez « f » (pour « follow ») pour suivre ses recommandations et appliquer les changements. Et voilà, vous devriez avoir deux répertoires identiques de part et d’autre.
On va enfin faire un script pour lancer tout ça en automatique sur le PC sous Ubuntu et surveiller le répertoire à chaque changement :
#!/bin/bash
#set -e force exit code
#on redirige les erreurs et le smessages standard vers un fichier log.
exec 1>>/home/votrelogin/scripts/sync/sync.log 2>&1
#on met la date dna sle fichier log
echo "`date +%F" "%T` début script synchro";
# début d'une boucle : on pingue toutes les 60 secondes jusqu'à ce que ça marche.
while :; do
if ping -c 1 192.168.0.12 > /dev/null; then
#si ça pingue, on lance le programme de suivi de log avec les règles contenues dans swatchrc_unison
swatch --daemon -c /home/votrelogin/scripts/sync/swatchrc_unison -t /home/votrelogin/scripts/sync/sync.log;
# un petit pop up sur le bureau + ligne dans les logs
notify-send "Portable en ligne";
echo "`date +%F" "%T` portable en ligne, début synchro initiale";
#on lance l'unison qu'on a compilé avec l'argument -batch pour éviter
#toutes questions qui interromprait le processus
/usr/local/bin/unison -batch masynchro;
notify-send "syncro active";
echo "`date +%F" "%T` synchro initiale ok, début surveillance";
#ensuite on surveille le répertoire pour répercuter tout changements suivants en temps réel.
/usr/local/bin/unison -batch -repeat watch masynchro;
break
fi
sleep 60s
done
exit
Je couvrirai swatch (surveillance de log) et notify-send dans le prochain billet. Ne pas oublier de passer ce script comme étant executable (clic droit puis propriétés sur le fichier). Le plus simple est est lancer ce script à la connexion de votre session via le module standard « applications au démarrage ».
Idéalement il faut faire la même chose sur le PC Windows. Le logiciel gratuit qui s’approche le plus de cette fonctionnalité est « Directory monitor« , sans être parfait il permet d’avancer. Pour chaque changement il faut lancer la commande :
ssh login_ubuntu@192.168.xx.xx 'touch /home/votrelogin/Images'
La commande « touch » met à jour la date et l’heure du répertoire visé sur le poste Ubuntu, Unisson va détecter le changement, lancer la synchronisation et récupérer du coup les nouveaux fichiers du Portable Windows sans risque de conflit.
Il ne reste plus qu’à mettre en place un moyen de suivre simplement ce qui se passe, c’est ce qu’on verra dans le prochain billet !