Table des matières

Unison

Késako ?

Un outil de synchronisation bidirectionnelle1) qui conserve toutes les infos des fichiers (permissions et autres joyeusetés), écrit en OCaml.

Afin de bien prendre en main le logiciel, il est utile de consulter le site officiel. Vous y trouverez la documentation technique en anglais. :-)

Pour les allergiques à cette langue universelle m( voici une documentation en français.

Bidirectionnel : si le dossier distant et/ou le dossier local changent, les changement prennent effet des deux côtés, sauf si conflit : article wikipedia

Installation

À tous les coups, c'est dans votre dépôt de logiciels préféré2). Si vous comptez l'utiliser avec le sas de Centrale, il faut la version 2.40.102 (pas comme chez Debian, la dernière fois que j'ai regardé).

Profil pour Centrale

~/.unison/MonProfil.prf
# Unison preferences
# ignore = Path {Blender}
root = <Votre dossier personnel sur votre machine locale, chemin absolu>
root = ssh://<login>@sas1.centrale-marseille.fr//users/<Le dossier distant sur le sas>
sshargs = # -C -i /home/moviuro/.ssh/unison_schizophrenia -S none # des options ssh...
# 
label = Synchro avec le sas
# logfile = /home/moviuro/logs/unison/Documents.log # À spécifier seulement si besoin
# pour les autres options, RTFM

On invoque alors la synchro avec

unison MonProfil

Intégrer avec systemd

On utilise pour cela systemd --user. Avec systemd (216 et +), Nous pouvons créer des timers (équivalent de cron jobs). Voilà les fichiers dont vous aurez besoin : (remplacer partout X par un nombre)

/etc/systemd/system/timer-Xminutes@.timer OU ~/.config/systemd/user/timer-Xminutes@.timer
[Unit]
Description=X minutes Timer for %i service
 
[Timer]
OnCalendar=*-*-* *:00/X:00
Persistent=true
Unit=%i.service
 
[Install]
WantedBy=multi-user.target
~/.config/systemd/user/unison@.service
[Unit]
Description=Unison sync for profile %i
 
[Service]
Nice=19
IOSchedulingClass=2
IOSchedulingPriority=7
ExecStart=/usr/bin/unison -auto -silent %i

Puis pour activer la synchro automatique toutes les X minutes :

systemctl --user enable timer-Xminutes@unison@MonProfil.timer
1)
Si vous êtes sous Windows ou OSX, regardez plutôt owncloud
2)
donc vous l'installez à grands coups de pacman, aptitude, yum ou zypper