Utiliser Unison avec deux systèmes d’exploitations (Windows et Linux) sur le même ordinateur sans dupliquer les données n’est pas trivial. Pour réaliser cela, j’utilise l’option rootalias offerte par Unison pour que le programme trouve le bon fichier d’archive (voir la documentation). Comme Unison ne cherche les fichiers d’archive que dans un endroit précis, j’ai crée un programme pour créer des liens symboliques comme nécessaire.
UNISON_WIN
et UNISON_LINUX
pour qu’elles correspondent à votre configuration.# Unison preferences
label = Documents
root = C:\Users\Elie\Documents
root = ssh://elie@serveur.fr/Documents
sshargs = -C
sshcmd = ssh2plink.bat
logfile = C:\Users\Elie\.unison\documents.log
# Unison preferences
label = Documents
root = /mnt/OS/Users/Elie/Documents
root = ssh://elie@serveur.fr/Documents
rootalias = //Elie_linux_host_name//mnt/OS/Users/Elie/Documents -> //Elie_Windows_host_name/C:/Users/Elie/Documents
logfile = /home/elie/.unison/documents.log
sshargs = -C
fat = true
Le programme lit les fichiers d’archives pour créer un index. Ensuite il lit les fichiers de configuration, trouve le fichier d’archive correspondant et en extrait les informations nécessaires pour créer les liens. Si le fichier d’archive existe en dur dans le dossier Unison de Linux, il est déplacé vers le dossier de Windows puis le lien est crée.
Le code est consultable ici : creer_liens_unison.py (visualisation).