GNU/Linux >> Tutoriels Linux >  >> Linux

Lsyncd - Synchroniser les répertoires locaux avec Linux distant

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.


Linux
  1. Gérez les répertoires personnels des utilisateurs Linux avec systemd-homed

  2. Comment synchroniser des répertoires à l'aide de Lsyncd sur Ubuntu 20.04

  3. Comment synchroniser les répertoires locaux et distants sous Linux

  4. Linux :synchroniser les fichiers en continu, dans un sens

  5. Comment comparer les différences entre les répertoires (linux)

Comment comparer des répertoires avec Meld sous Linux

Commande Linux rmdir pour les débutants (avec exemples)

Commandes SSH sous Linux avec exemples d'utilisation

Comment synchroniser des fichiers avec Unison sous Linux

Conseils Vim - Modifier des fichiers distants avec Vim sous Linux

Synchronisation des fichiers et répertoires Linux avec rsync