Paramétrage de lsyncd
Lsyncd est un programme permettant la synchronisation de répertoires grâce à rsync ou rsync+SSH. Il présente l'avantage d'une grande finesse de configuration grâce à son fichier de configuration utilisant le langage Lua.Installation de lsyncd
sudo apt-get install lsyncd
Création du fichier de configuration
Par défaut aucun fichier de configuration n'est créé après l'installation. Il convient donc de commencer par cela.sudo mkdir /etc/lsyncd # création du répertoire lsyncd dans /etc
sudo touch /etc/lsyncd/lsyncd.conf.lua #création du fichier de configuration
sync{} | encadre toutes nos directives de synchronisation |
default.direct | demande à lsyncd d'utiliser les commandes systèmes rsync ou rsync et ssh |
source | répertoire que l'on souhaite surveiller |
target | répertoire cible à synchroniser |
delete | configuration de la suppression de fichier (true|false|startup|running) |
sync { default.rsync, source = "/home/laetitia/Documents/emploi", target = "/media/laetitia/QuickyBlue/emploi", delete = true, rsync = { owner = true, group = true }Si vous souhaitez ajouter d'autres répertoires à synchroniser, il suffira d'ajouter des directives sync similaires à celle de l'exemple ci-dessus.
Création d'un service de synchronisation
Pour Rappel notre objectif est que l'événement déclencheur de la synchronisation soit le branchement d'une clé usb précise. L’exécution de notre daemon doit donc être conditionné au montage du système de fichier. Pour y parvenir on s'appuiera sur systemd. Nous allons donc créer un service dédié qui va lancer la synchronisation paramétrée dans la partie précédente.Prérequis
Avant de commencer la rédaction du service il nous faut récupérer des variables liées à la clé usb que nous avons choisi pour la synchronisation. Après avoir monté la clé, lançons la commande :sudo systemctl list-units -t mount
sudo blkid
Création du fichier service
On crée un fichier service avec l'extension .service dans le répertoire /etc/systemd/system/cd /etc/systemd/system/
sudo nano /etc/systemd/system/syncemploi.service
[Unit] Description=Synchronisation emploi After=media-laetitia-QuickyBlue.mount BindsTo=media-laetitia-QuickyBlue.mount [Service] ExecStart=/usr/bin/lsyncd --nodaemon /etc/lsyncd/lsyncd.conf.lua [Install] WantedBy=media-laetitia-QuickyBlue.mountAttention, l’exécution de lyncd doit s’arrêter au démontage du système de fichier. on utilise la valeur de la colonne UNIT pour nommer le fichier auquel on ajoute l'extension .mount.
sudo nano /etc/systemd/system/media-laetitia-QuickyBlue.mount
[Unit] DefaultDependencies=no Conflicts=umount.target Before=umount.target StopWhenUnneeded=true [Mount] What=/dev/disk/by-uuid/361D-25A6 Where=/media/laetitia/QuickyBlue
3. Mise en production
Pour terminer, nous n'avons plus qu'à lancer notre service.Activation du service
sudo systemctl enable /etc/systemd/system/syncemploi.service
Démarrage du service
sudo systemctl start /etc/systemd/system/syncemploi.service
Vérification du fonctionnement
sudo systemctl status /etc/systemd/system/syncemploi.service
