Lsyncd (Démon miroir de synchronisation en direct ) est une solution Linux légère pour synchroniser les répertoires distants et locaux. L'utilisation de cette solution Linux n'affecte en rien les performances de votre système de fichiers local.
[ Vous pourriez également aimer :Comment synchroniser automatiquement deux serveurs Web sous Linux ]
Une fois que vous avez entièrement installé et configuré Lsyncd , vos répertoires local et distant seront synchronisés de sorte que toute modification de données sur le répertoire local soit notée et mise à jour sur le répertoire du serveur distant. Les mises à jour fréquentes des répertoires et les actions de synchronisation garantissent que les répertoires locaux et distants ciblés restent identiques.
Installer Lsyncd sur le serveur Linux
Ce Lsyncd La solution de synchronisation est prise en charge sur diverses plates-formes de système d'exploitation Linux. Selon la distribution Linux que vous utilisez, vous pouvez installer Lsyncd à partir de l'une des commandes suivantes :
Installer Lsyncd dans les distributions basées sur RHEL
$ sudo yum install epel-release $ sudo yum install lsyncd
Installer Lsyncd dans Fedora Linux
$ sudo dnf install lsyncd
Installer Lsyncd dans Debian, Ubuntu et Mint
$ sudo apt install lsyncd
Installer Lsyncd dans OpenSUSE
$ sudo zypper install lsyncd
Installer Lsyncd dans Arch Linux
$ sudo pacman -S git base-devel $ git clone https://aur.archlinux.org/lsyncd.git $ cd lsyncd $ makepkg -sri
Utilisation de Lsyncd pour synchroniser les répertoires locaux et distants sous Linux
Vous devez être sur votre machine locale et disposer d'un accès authentifié à une machine ou à un serveur distant pour que la synchronisation d'annuaire bidirectionnelle réussisse. De mon côté, le serveur distant que j'utilise a l'adresse IP 18.118.208.XX .
Sur la machine locale, nous devons configurer une connexion ssh sans mot de passe à la machine/serveur distant mentionné.
La connexion ssh sans mot de passe permet à l'automatisation de la synchronisation des répertoires locaux vers distants de Lsyncd d'être transparente.
Configurer la connexion SSH sans mot de passe à Linux distant
1. Générez la clé SSH sur la machine locale pour un accès sans mot de passe au serveur distant.
$ sudo ssh-keygen -t rsa
Lorsque vous êtes invité à saisir une phrase secrète, laissez le champ vide en appuyant sur [Entrée ] sur votre clavier.
2. Copiez la clé publique SSH générée sur votre machine distante. Nous devons maintenant transférer une copie de la clé publique SSH générée vers le serveur/machine distant mentionné.
$ sudo ssh-copy-id [email protected]
Avec cette réalisation, tout accès futur à ce serveur distant (18.118.208.79 ) via la commande SSH (ssh [email protected] ) doit être sans mot de passe.
$ ssh [email protected]
Vous pouvez également vous assurer que le fichier /etc/ssh/sshd_config de votre machine distante le fichier a PubKeyAuthentication défini sur yes
et PermitRootLogin défini sur sans mot de passe.
Redémarrez le service sshd sur la machine distante.
$ sudo systemctl restart ssh.service
Si PubKeyAuthentication et PermitRootLogin champs n'étaient pas activés sur votre serveur et que vous avez réussi à les activer, commencez à partir de l'étape 1 pour regénérer la clé SSH publique, puis recopiez-la (étape 2) sur le serveur distant.
Synchroniser les répertoires locaux avec la télécommande à l'aide de Lsyncd
Créez le répertoire distant/destination nécessaire sur votre machine distante
$ mkdir linuxshelltips_remotesync
Créez le répertoire source nécessaire sur votre machine locale.
$ mkdir linuxshelltips_localsync
Remplissez ce répertoire source avec quelques fichiers :
$ sudo touch linuxshelltips_localsync/file{1..16}
Créer Lsyncd Fichiers journaux et d'état.
$ sudo mkdir /var/log/lsyncd $ sudo touch /var/log/lsyncd/lsyncd.{log,status}
Créer un lsyncd associé répertoire de configuration.
$ sudo mkdir /etc/lsyncd
Sous ce répertoire, créez le lsyncd.conf.lua fichier de configuration.
$ sudo nano /etc/lsyncd/lsyncd.conf.lua
Remplissez-le avec des données similaires à la capture d'écran suivante
---- -- User configuration file for lsyncd. ---- settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsyncssh, source = "/home/dnyce/linuxshelltips_localsync", host = "[email protected]", targetdir = "/home/ubuntu/linuxshelltips_remotesync" }
Sur ce fichier, la source est le chemin d'accès aux fichiers que nous voulons synchroniser sur la machine locale, l'hôte pointe vers le nom d'utilisateur + l'adresse IP du serveur distant et targetdir est le répertoire de destination sur le serveur distant.
Ensuite, démarrez et activez Lsyncd .
$ sudo systemctl restart lsyncd $ sudo systemctl enable lsyncd
Accédez au serveur distant pour confirmer la présence des fichiers de répertoire synchronisés. Vérifiez si une synchronisation de fichiers a eu lieu.
$ sudo ssh [email protected]
Comme vous pouvez le voir, la commande ls avant de démarrer lsyncd sur la machine locale n'affichait aucun fichier et celle après l'avoir exécutée affiche les fichiers copiés à partir de la machine locale.
Il vous suffit d'installer Lsyncd sur la machine hôte/source avec les fichiers de répertoire que vous devez synchroniser. Il est facile à mettre en œuvre et vous offre une solution de synchronisation de fichiers qui fonctionne pour les machines locales à distantes et également pour les répertoires locaux à locaux.