Debian

Comment utiliser Unison pour synchroniser les fichiers entre les serveurs

Comment utiliser Unison pour synchroniser les fichiers entre les serveurs
Ce didacticiel vous montrera comment configurer et utiliser l'outil de synchronisation de fichiers Unison sur les systèmes Debian. En utilisant Unison, vous pouvez synchroniser des fichiers entre deux disques ou répertoires différents dans le même système ou deux autres systèmes sur le réseau.

Qu'est-ce que l'Unison?

La technologie Unison développée par Benjamin C Pierce sous licence GPL permet aux utilisateurs de synchroniser deux instances de fichier unique sur le même système mais des disques différents ou deux autres systèmes.

Unison vous permet de conserver une version mise à jour et identique du même fichier ou répertoire. Il est utilisable dans une grande variété de contextes, tels que SSH, permettant un transfert sécurisé de données entre appareils ou répertoires.

L'outil Unison est multiplateforme, permettant aux utilisateurs de synchroniser des fichiers et des répertoires entre des systèmes exécutant le même ou des systèmes d'exploitation différents. Par exemple, vous pouvez synchroniser des fichiers d'un système Linux vers un système BSD. En raison de ses fonctionnalités de sécurité, Unison synchronise les fichiers et les répertoires et applique les droits de propriété et d'autorisation sur les deux systèmes.

L'outil Unison est développé dans un souci de sécurité et peut survivre aux pannes où des interruptions se produisent entre les points de synchronisation. Si Unison détecte des conflits de fichiers et de répertoires, il signale les conflits existants et permet aux utilisateurs de sélectionner la version des fichiers à appliquer.

Unison peut fonctionner avec ou prend en charge les réseaux lents, ce qui en fait un outil très efficace pour l'utilisation de la bande passante. Il synchronise uniquement les parties et les répertoires qui ont changé, évitant ainsi une charge lourde et mettant à jour le processus de synchronisation très facilement et rapidement.

Malgré son contexte d'utilisation principal, Unison est un outil puissant qui peut être modifié pour créer un large éventail de cas d'utilisation.

Ce tutoriel expliquera comment installer et configurer le système de synchronisation de fichiers Unison sur Debian 10.

Comment installer Unison sur Debian 10

Unison est un outil populaire ; à cause de cela, il est disponible dans les référentiels officiels des principales distributions Linux.

Pour installer la version en ligne de commande d'Unison sur Debian, commencez à mettre à jour le système :

sudo apt-get update && sudo apt-get upgrade

Ensuite, utilisez la simple commande apt to pour installer l'outil.

sudo apt-get install unison -y

Si vous avez un environnement de bureau installé sur votre système et préférez une version GUI de l'outil, installez unison-gtk à l'aide de la commande :

sudo apt-get install unison-gtk

REMARQUE: Assurez-vous d'installer Unison sur les deux versions des systèmes que vous souhaitez synchroniser les fichiers entre eux. Pour la compatibilité et pour minimiser les risques d'erreurs, il est préférable d'avoir la même version d'Unison dans les deux systèmes.

Comment synchroniser des fichiers avec Unison

Unison nous fournit des moyens de synchroniser des fichiers et des répertoires entre des machines locales et des machines distantes à l'aide de connexions de socket directes et de SSH. Puisque nous synchronisons entre deux serveurs Debian, nous allons ignorer la synchronisation de la machine locale.

Unison Remote et Remote Sync via SSH

Pour synchroniser les fichiers et les répertoires entre les machines distantes, vous devrez avoir Unison installé sur les deux systèmes, avoir un accès SSH aux systèmes et à leurs adresses IP.

Vous pouvez également utiliser votre machine locale comme un serveur et le périphérique distant comme l'autre serveur.

La première étape consiste à créer une clé privée et publique sur le serveur distant1.

ssh-keygen -t rsa
Génération d'une paire de clés rsa publique/privée.
Entrez le fichier dans lequel enregistrer la clé (/home/csalem/.ssh/id_rsa) :
Répertoire créé '/home/csalem/.chut'.
Saisissez la phrase secrète (vide pour aucune phrase secrète) :
Saisissez à nouveau la même phrase secrète :
Votre identification a été enregistrée dans /home/csalem/.ssh/id_rsa.
Votre clé publique a été enregistrée dans /home/csalem/.ssh/id_rsa.pub.
L'empreinte digitale clé est :
SHA256:4p5YuEBEA5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem@Debian-PC
L'image artistique aléatoire de la clé est :
+---[RSA 2048]----+
|+/@=… |
|=*O== |
|++OE . |
|+*o… |
|o+= . S |
|++. o . |
|oo… o |
|.o . = . |
|… o o |
+----[SHA256]-----+

Ignorez rapidement le processus de génération de clé et enregistrez le fichier. Veuillez ne pas ajouter de phrase secrète car cela peut entraver la synchronisation non surveillée entre les serveurs.

Ensuite, copiez la clé de server1 vers server2 à l'aide de la commande :

ssh-copie-id 192.168.0.201

Maintenant que vous avez configuré SSH sur les deux systèmes, vous pouvez démarrer Unison pour synchroniser les fichiers et les répertoires.

Testons l'utilisation d'Unison sur les deux serveurs en créant le répertoire que nous synchroniserons sur server1 :

mkdir -p /dir1

Sur le serveur2, créez un répertoire comme ci-dessus

mkdir -p /dir2

Comme mentionné, Unison respecte les autorisations des utilisateurs. Par conséquent, il est préférable de modifier les autorisations et la propriété dans les deux répertoires pour s'assurer que les deux répertoires ont des privilèges de lecture et d'écriture.

Ensuite, ajoutez toutes les données que vous souhaitez synchroniser entre les serveurs dans dir1. Par exemple, ajoutez quelques fichiers zip.

sudo mv ~/Documents.zip /rép1

Ayant les fichiers, nous voulons synchroniser dans le bon répertoire, exécutez la commande unison pour synchroniser à partir du serveur un en tant que :

unisson /dir1 ssh://192.168.0.201//dir2

Lors du premier lancement d'Unison, vous recevrez un avertissement indiquant que le processus de synchronisation peut prendre un certain temps. Si vous avez de gros fichiers dans les répertoires, cela peut prendre un certain temps, mais comme nous ne l'utilisons qu'à des fins de test, cela devrait être relativement rapide.

Appuyez sur Entrée pour démarrer le processus de synchronisation. Une fois le processus de synchronisation terminé, accédez à server2, accédez à dir2 et répertoriez le contenu du répertoire comme suit :

cd /dir2 && ls -la
-rw-r--r-- 1 racine racine 436 5 janvier 12:57 Documents.Zip *: français

Modification de la configuration Unison

Dans la plupart des cas, nous ne souhaitons pas synchroniser de manière interactive les fichiers entre ces serveurs car le processus est répétitif et inefficace. Nous pouvons modifier le fichier de configuration Unison pour autoriser les fichiers de synchronisation automatique.

Utilisez la commande ci-dessous pour modifier le fichier de configuration par défaut :

sudo vi ~/.unisson/par défaut.prf

Dans le fichier, ajoutez les lignes suivantes :

auto=vrai
lot=vrai

Les lignes ci-dessus désactivent les invites lors de la synchronisation des fichiers, automatisant le processus.

Configurer Unison Cronjob

Une chose est sûre, les programmeurs sont très réticents à faire les choses manuellement, surtout quand il est possible d'automatiser, ce qui est le cas ici. Nous pouvons configurer une tâche cron pour qu'Unison effectue automatiquement la synchronisation.

Dans server1, créez un script bash simple pour exécuter la commande unison en tant que :

sudo touch /usr/bin/unisoncron && sudo vi /usr/bin/unisoncron

Dans le fichier, commencez par un shebang et ajoutez la commande unison sync :

#!/bin/bash/
unisson /dir1 ssh://192.168.0.201//dir2

Comme d'habitude, faites en sorte que le script exécute les autorisations :

sudo chmod 755 /usr/bin/unisoncron

Modifiez maintenant votre fichier cronjob avec crontab :

sudo crontab -e

Si c'est la première fois que vous modifiez crontab - j'espère que ce n'est pas le cas - choisissez votre éditeur et entrez la ligne suivante pour synchroniser avec Unison toutes les 1 heures :

*/60 * * * * /usr/bin/unisoncron &> /dev/null

Vous pouvez également configurer le crontab pour qu'il s'exécute à des heures spécifiques de la journée. Vous n'avez pas non plus besoin d'utiliser un script et pouvez utiliser une commande brute dans la crontab.

Conclusion

Ce tutoriel vous a montré comment installer et configurer Unison sur un système Debian pour la synchronisation des fichiers et des répertoires.

Bien que ce guide rapide puisse vous aider à démarrer, vous pouvez en savoir plus en utilisant les pages de manuel Unison (pages de manuel) ou la documentation officielle en utilisant la ressource fournie ci-dessous :

Moteurs de jeux gratuits et open source pour le développement de jeux Linux
Cet article couvrira une liste de moteurs de jeux gratuits et open source qui peuvent être utilisés pour développer des jeux 2D et 3D sur Linux. Il ex...
Tutoriel Shadow of the Tomb Raider pour Linux
Shadow of the Tomb Raider est le douzième ajout à la série Tomb Raider - une franchise de jeux d'action-aventure créée par Eidos Montréal. Le jeu a ét...
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...