GNU/Linux >> Tutoriels Linux >  >> Linux

Comment synchroniser automatiquement des fichiers entre deux serveurs Linux

La configuration d'un serveur de sauvegarde pour prendre en charge les opérations d'un serveur principal lorsqu'il est victime de problèmes d'indisponibilité du serveur est un ensemble de compétences que la plupart des utilisateurs Linux et tous les administrateurs Linux doivent maîtriser. Cela vous évite d'avoir à vous soucier du "et si ” scénarios.

Ainsi, dans le pire des cas où certains problèmes techniques ou tentatives de violation de serveur pourraient temporairement ou définitivement arrêter votre serveur principal, vous pouvez toujours compter sur la présence d'un serveur de sauvegarde configuré pour fonctionner comme un environnement de serveur double du serveur principal/principal. serveur.

[ Vous pourriez également aimer :Comment synchroniser automatiquement deux serveurs Web sous Linux ]

Le serveur de sauvegarde garantit que vous ne perdez pas vos configurations de données système importantes et vos fichiers utilisateur.

Installation de Rsync sous Linux

Maintenant que vous comprenez l'importance d'avoir deux serveurs synchronisés, il est temps de vous expliquer comment atteindre l'objectif de cet article. Nous allons avoir besoin de deux serveurs actifs et fonctionnels avec leurs adresses IP ou noms de domaine respectifs.

  • L'adresse IP du serveur principal/principal :3.135.207.xx .
  • L'adresse IP du serveur de secours/secondaire :18.118.208.xx

Pour réussir à synchroniser automatiquement ces deux serveurs, nous aurons besoin de l'aide de rsync utilitaire. Quelle que soit la distribution du serveur Linux que vous utilisez, installez rsync à partir de l'une des commandes d'installation Linux suivantes.

Son installation doit avoir lieu à la fois sur votre serveur principal/principal et sur votre serveur secondaire/de secours.

$ sudo apt-get install rsync     [On Debian, Ubuntu and Mint]
$ sudo yum install rsync         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-mis/rsync   [On Gentoo Linux]
$ sudo pacman -S rsync           [On Arch Linux]
$ sudo zypper install rsync      [On OpenSUSE]    

Synchronisation des fichiers de répertoire ciblés sous Linux à l'aide de Rsync

Supposons par exemple que le serveur principal/primaire (3.135.207.xx ) a le répertoire LinuxShellTips avec les fichiers en surbrillance suivants qui doivent être synchronisés avec le serveur de sauvegarde/secondaire (18.118.208.xx ).

$ ls

Nous devons accéder au serveur de sauvegarde/secondaire (18.118.208.xx ) et créez un répertoire similaire qui hébergera les fichiers du serveur principal/principal (3.135.207.xx ) lorsque le processus rsync commence.

$ mkdir LinuxShellTips_Backup
$ cd LinuxShellTips_Backup

Synchronisation des répertoires à l'aide de Rsync sous Linux

Depuis rsync prend en charge l'utilisation de ssh protocole, la sécurité d'accès au serveur est garantie. Pour tester manuellement comment rsync effectue entre ces deux serveurs, nous allons exécuter la commande suivante.

Nous exécutons cette commande à partir du serveur de sauvegarde/secondaire (18.118.208.xx ).

$ sudo rsync -avzhe ssh [email protected]:/home/ubuntu/LinuxShellTips/ /home/ubuntu/LinuxShellTips_Backup 

Comme vous l'avez noté, les trois fichiers du serveur principal/principal (3.135.207.xx ) ont été copiés avec succès sur le serveur de sauvegarde/secondaire (18.118.208.xx ).

Synchroniser automatiquement les répertoires à l'aide de Rsync sous Linux

Nous devons accomplir les deux étapes suivantes pour automatiser entièrement rsync.

Étape 1 : Configurer la connexion sans mot de passe SSH

Lors de l'exécution de la commande ci-dessus pour tester rsync , vous avez dû être invité à entrer le mot de passe d'accès au serveur principal/primaire. Pour supprimer les invites de demande de mot de passe lors de la synchronisation de vos serveurs, nous devons générer une clé publique et une clé privée.

Utilisez la commande suivante sur votre serveur de sauvegarde/secondaire :

$ sudo ssh-keygen -t rsa -b 2048

Appuyez sur [Entrée ] lorsque vous êtes invité à saisir une phrase secrète, laissez le champ vide et copiez les clés privées et publiques générées sur votre serveur principal/principal.

$ sudo ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

Vous pouvez maintenant exécuter confortablement le rsync précédemment couvert commande sans fournir de mot de passe d'accès au serveur pour le serveur principal/primaire.

$ sudo rsync -avzhe ssh [email protected]:/home/ubuntu/LinuxShellTips/ /home/ubuntu/LinuxShellTips_Backup 

Étape 2 :Configurer une tâche Cron pour automatiser Rsync

Depuis SSH la connexion sans mot de passe entre ces deux serveurs est désormais possible, la dernière étape pour automatiser le processus rsync consiste à créer une tâche cron en modifiant le fichier crontab sur le serveur de sauvegarde/secondaire.

$ sudo crontab -e

Modifiez le fichier crontab en créant une planification de tâche cron pour synchroniser les fichiers de répertoire de vos deux serveurs Linux.

*/5    *    *     *     *  sudo rsync -avzhe ssh [email protected]:/home/ubuntu/LinuxShellTips/ /home/ubuntu/LinuxShellTips_Backup

Enregistrez et fermez le fichier crontab.

La tâche cron implémentée ci-dessus synchronisera automatiquement le serveur de sauvegarde/secondaire avec le serveur principal/principal toutes les 5 minutes.

La synchronisation de deux serveurs crée la solution parfaite aux problèmes de temps d'arrêt du serveur et aux erreurs de journal du serveur. Vous n'avez pas non plus à vous soucier de perdre vos fichiers de données utilisateur et système car le serveur de sauvegarde hébergera une copie complète de ces fichiers.


Linux
  1. Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv

  2. Comment configurer le serveur SAMBA et transférer des fichiers entre Linux et Windows

  3. Comment synchroniser des fichiers entre deux télécommandes ?

  4. Comment faire la différence (uniquement les ajouts) entre deux fichiers sous Linux

  5. Comment utiliser rsync depuis un PC Windows vers un serveur Linux distant ?

Comment télécharger des fichiers à partir de serveurs Linux distants

Comment comparer deux fichiers dans un terminal Linux

Comment synchroniser automatiquement deux serveurs Web sous Linux

Comment configurer un démon Rsync sur votre serveur Linux

Comment utiliser Rsync pour copier/synchroniser des fichiers entre des serveurs

Différence d'espace entre deux fichiers sous Linux