Unison: configuration et automatisation de la synchronisation bidirectionnelle des répertoires sur deux serveurs


Getty Images / iStockphoto Le

problème de la synchronisation des répertoires sur deux serveurs avec la famille Linux de systèmes d'exploitation à bord peut être résolu plus facilement si vous utilisez des outils spécialisés. Voyons comment cela peut être fait avec Unison .

Vous possédez peut-être plusieurs serveurs et vous devez synchroniser certains répertoires sur ces serveurs. Par exemple, vous devez synchroniser le répertoire / data sur chacun de ces serveurs afin que certaines applications aient accès aux informations pertinentes. Ou peut-être avez-vous simplement besoin de sauvegarder périodiquement les données d'un serveur à un autre de manière synchronisée.

Unison est similaire à l'utilitaire de synchronisation rsync , mais contrairement à lui, il prend en charge la synchronisation bidirectionnelle. Autrement dit, il vous permet de synchroniser deux copies de fichiers, en mettant à jour chaque copie en fonction des modifications apportées.

Lorsque vous utilisez Unison sur des serveurs, il est souhaitable d'avoir installé des packages tels que openssh-server et ssh, car pour des raisons de sécurité, la synchronisation est préférable en utilisant le protocole SSH. Cependant, si vous êtes confiant dans la sécurité de votre réseau (par exemple, le serveur peut utiliser l'authentification SSH sans mot de passe), vous ne pouvez pas vous embêter.

Quoi d'autre est nécessaire pour utiliser Unison


Je vais montrer l'ensemble du processus en utilisant deux serveurs Ubuntu comme exemple (les deux 18.04). Vous pouvez installer et utiliser Unison avec d'autres distributions, mais vous devrez ensuite modifier la commande d'installation, sinon Unison peut être installé à partir de référentiels standard (bien sûr, votre utilisateur doit disposer des droits sudo).

J'utiliserai ces serveurs:

  • serveur1 - 192.168.1.6
  • serveur2 - 192.168.1.19

Comment installer Unison


La première chose à faire est d'installer Unison. Cela devrait être fait sur les deux serveurs. Accédez aux deux serveurs et entrez la commande:

sudo apt-get install unison unison-all -y

Attendez la fin de l'installation d'Unison et continuez.

Comment générer et copier une clé SSH


Tout d'abord, nous générons la clé SSH uniquement pour server1 . Pour ce faire, utilisez la commande:

ssh-keygen -t rsa

Lorsque vous êtes invité à entrer un mot de passe, appuyez simplement sur la touche ENTRÉE.
Une fois la clé générée, copiez-la sur server2 à l'aide de la commande:

ssh-copy-id 192.168.1.19

Une fois la clé copiée, vous pouvez passer directement aux affaires.

Comment utiliser Unison


Créons un répertoire de test pour chaque serveur à des fins de test. Commande pour server1 :

sudo mkdir -p /data1

Pour server2 :

sudo mkdir -p /data2

Ensuite, sur les deux serveurs, vous devez changer le nom du propriétaire du répertoire créé, sinon Unison ne pourra rien y écrire. En tant que propriétaire, spécifiez l'utilisateur qui exécutera la commande Unison:

sudo chown -R $USER.$USER /data2

Faites de même pour server1 :

sudo chown -R $USER.$USER /data1

Mettez des fichiers de test dans / data1 :

touch /data1/{test1,test2,test3}

Nous synchronisons nos répertoires avec la commande suivante (en l'exécutant sur server1 ):

unison /data1 ssh://192.168.1.19//data2

Puisque vous essayez de synchroniser ces répertoires racine pour la première fois, vous recevrez un avertissement indiquant que la synchronisation peut prendre un certain temps (mais dans notre cas, cela ne se produira pas, car nous n'avons ajouté que trois fichiers de test du volume minimum au répertoire). S'il s'agissait d'une sauvegarde en production, le premier lancement pourrait vraiment prendre un certain temps.

Alors buvez du thé la prochaine fois. En attendant, appuyez sur Entrée pour démarrer le processus. Après cela, il vous sera demandé de confirmer la synchronisation de chaque fichier. Une fois terminé, entrez «y» pour continuer.

Comme nous ne synchronisons que trois fichiers de test, cela se produira très rapidement et vous ramènera au shell bash. Pour vous assurer que les fichiers sont synchronisés, accédez à server2et entrez la commande:

ls /data2

De plus, le système signalera que nos fichiers test1, test2 et test3 se trouvent dans le répertoire / data2 :



Nous avons réussi: Unison a synchronisé les deux répertoires.

Comment démarrer Unison sans avoir besoin d'interaction avec l'utilisateur


Je pense que vous ne voulez pas confirmer constamment la synchronisation de chaque fichier de répertoire à chaque démarrage de Unison. Cela est particulièrement gênant lorsque vous synchronisez des répertoires avec un grand nombre de fichiers. Par conséquent, l'automatisation est nécessaire. Accédez à server1 et entrez la commande:

nano ~/.unison/default.prf

Lorsque le fichier de configuration s'ouvre pour modification, ajoutez-y deux lignes:

auto=true
batch=true

Enregistrez puis fermez le fichier.
Maintenant, Unison ne vous dérangera pas avec des bagatelles. Mais ce n'est pas tout.

Comment créer une tâche pour Cron Scheduler


Je pense que vous ne voudriez guère démarrer la synchronisation manuellement, car vous pouvez faire une erreur quelque part ou, par exemple, ne pas prendre en compte le changement dans la structure du répertoire sur les serveurs. Pour configurer l'automatisation, vous devez créer un travail cron pour server1 .
Créons un script pour démarrer la synchronisation:

sudo nano /usr/local/bin/unisonsync

Les éléments suivants doivent être ajoutés à ce fichier:

#!/bin/bash/
unison /data1 ssh://192.168.1.19//data2

Ensuite, vous devez donner au script le droit d'exécuter:

sudo chmod ugo+x /usr/local/bin/unisonsync

Créez un travail pour Cron avec la commande:

crontab -e

Après ce type:

*/5 * * * * /usr/local/bin/unisonsync &> /dev/null

Maintenant, la synchronisation démarre automatiquement toutes les 5 minutes.

J'ai montré que Unison facilite la synchronisation des répertoires sur deux serveurs Linux. Vous pouvez le vérifier vous-même en ajoutant des fichiers aux répertoires de test / data1 et / data2 correspondants sur les deux serveurs. Après vous être assuré que la synchronisation fonctionne, vous pouvez l'utiliser en mode combat sur les serveurs de production.



Comme une publicité


VDSina est toujours heureux d'offrir des serveurs fiables pour toutes les tâches. Vous avez accès à une vaste sélection de systèmes d'exploitation pour une installation automatique, il est possible d'installer n'importe quel système d'exploitation à partir de votre propre image , ainsi que d'utiliser un réseau local à grande vitesse entre les serveurs au même endroit.


All Articles