Vendredi 23 novembre 2018

Lsyncd

Lsyncd est un moyen de synchroniser automatiquement un répertoire local avec d’autres machines. Les fichiers sur la machine locale sont surveillés pour les changements toutes les quelques secondes et si des changements sont notés, ils sont alors répliqués et synchronisés sur le(s) serveur(s) distant(s). Cette solution de synchronisation est facile à installer, légère et ne limite pas les performances du système de fichiers local.

Par défaut, Lsync utilise Rsync pour répliquer les fichiers de la machine locale et ne transférera que les fichiers qui ont été modifiés. Il existe d’autres solutions sur le marché qui exécutent cette tâche, mais il s’agit d’une solution peu coûteuse et pratique pour synchroniser automatiquement les données, minimisant ainsi la perte de données et le temps passé à répliquer les fichiers d’une machine à l’autre.

Les 5 fonctions suivantes sont proposées :

  • Vérifie ce qui doit être synchronisé de votre machine locale vers votre ou vos serveurs distants.
  • Contrôles sur le vice versa
  • Synchronisation de votre local vers votre distant
  • Syncs vice-versa
  • Peut éditer votre fichier “rsync includes”.

L’utilisation de cette méthode vous permet de synchroniser en continu les données de votre machine locale vers la machine distante sans ajouter de stress supplémentaire sur le serveur.

Installation lsyncd

L’installation de Lsyncd sur votre serveur est un processus assez simple et facile. Utilisez les commandes suivantes pour l’installer sur votre système Debian ou Archlinux.

sudo apt install lsyncd

Archlinux

yaourt -S lsyncd

L’exécution de ces commandes installera Lsyncd et inclura quelques exemples dans le répertoire /usr/share/doc/lsyncd/examples.Ces exemples peuvent être utilisés pour avoir une meilleure idée des configurations possibles lors de l’utilisation de cette méthode de synchronisation.

Arrêt temporaire du service, pour la configuration

sudo systemctl stop lsyncd

Mise en place de l’environnement

Répertoire local : /srv/wikistatic/_site
La connexion SSH sur la machine distante se fait avec l’utilisateur backupuser et un jeu de clé id_rsa

machine distante

Création répertoire avec les droits utilisateur

sudo mkdir /srv/dest
sudo chown backupuser.backupuser -R /srv/dest

machine locale

Créer un répertoire de logs et quelques fichiers que lsyncd à utilisera

sudo mkdir /var/log/lsyncd
sudo touch /var/log/lsyncd/lsyncd.{log,status}

Ensuite, nous pouvons créer le répertoire de configuration lsyncd

sudo mkdir /etc/lsyncd

Créer un fichier de configuration à l’intérieur de ce répertoire appelé “lsyncd.conf.lua”

sudo nano /etc/lsyncd/lsyncd.conf.lua
settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status",
    statusInterval = 20
}
sync {
    default.rsync,
    source="/srv/wikistatic/_site",
    target="backupuser@193.70.43.101:/srv/dest",
    rsync = {
        archive = false,
        acls = false,
        compress = true,
        links = false,
        owner = false,
        perms = false,
        verbose = true,
        rsh = "/usr/bin/ssh -p 55027 -i /home/backupuser/.ssh/id_rsa -o StrictHostKeyChecking=no"
    }
}

Utiliser lsyncd

Lancer manuellement

lsyncd /etc/lsyncd/lsyncd.conf.lua

Lancer le service

sudo systemctl start lsyncd

Statut

sudo systemctl status lsyncd
● lsyncd.service - LSB: lsyncd daemon init script
   Loaded: loaded (/etc/init.d/lsyncd)
   Active: active (running) since mer. 2018-04-25 21:14:51 CEST; 27s ago
  Process: 9877 ExecStop=/etc/init.d/lsyncd stop (code=exited, status=0/SUCCESS)
  Process: 15464 ExecStart=/etc/init.d/lsyncd start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/lsyncd.service
           ├─15468 /usr/bin/lsyncd -pidfile /var/run/lsyncd.pid /etc/lsyncd/lsyncd.conf.lua
           ├─15469 /usr/bin/rsync --delete --ignore-errors -vzst --rsh=/usr/bin/ssh -p 55027 -i /home/b...
           └─15470 /usr/bin/ssh -p 55027 -i /home/backupuser/.ssh/id_rsa -o StrictHostKeyChecking=no -l...

avril 25 21:14:51 yanspm.com lsyncd[15464]: Starting synchronization daemon: lsyncd.
avril 25 21:14:51 yanspm.com systemd[1]: Started LSB: lsyncd daemon init script.

Vérifier l’opération

cat /var/log/lsyncd/lsyncd.log
[...]
sent 15,851,575 bytes  received 10,820 bytes  118,819.44 bytes/sec
total size is 21,886,154  speedup is 1.38
Wed Apr 25 21:17:04 2018 Normal: Startup of "/srv/wikistatic/_site/" finished.