kubais - stock.adobe.com

Comment utiliser rsync pour centraliser les sauvegardes

L'utilitaire rsync sous Linux est un outil puissant entre les mains d'un administrateur expérimenté. Cet article explique comment une entreprise peut l’utiliser pour ses sauvegardes.

L'informatique décentralisée, qui consiste à placer les données à proximité des utilisateurs qui en ont besoin, peut compliquer la réalisation de tâches élémentaires comme les sauvegardes, car il faut récupérer des données depuis des sites éparpillé géographiquement. Heureusement, rsync peut aider les administrateurs à simplifier ce genre de processus de sauvegarde complexes.

L'utilitaire Linux rsync copie et synchronise les données entre des serveurs de fichiers. Pour ce faire, il compare les fichiers existants de part et d’autre, identifie leurs différences, puis transfère uniquement les parties des fichiers qui n’existent qu’en un endroit afin que les deux copies correspondent.

Bien que rsync existe depuis très longtemps, il demeure encore aujourd’hui un outil indispensable pour les administrateurs système. À titre d’illustration, cet article présente un scénario spécifique dans lequel une entreprise pourrait utiliser rsync pour ses sauvegardes.

Cette entreprise fictive dispose de plusieurs succursales, chacune dotée de son propre serveur de fichiers pour les collaborateurs locaux. Les administrateurs du siège social souhaitent simplifier le processus de sauvegarde en centralisant certaines données provenant de ces serveurs de succursales vers un unique serveur de fichiers central, plus puissant. Celui-ci sera sauvegardé avec un logiciel d’entreprise.

Ce scénario illustre les différentes utilisations et les commandes nécessaires à la synchronisation de fichiers pour des sauvegardes centralisées à l’aide de rsync. Si votre entreprise rencontre des difficultés pour synchroniser des fichiers à des fins de sauvegarde, ce scénario peut vous guider à travers les étapes nécessaires.

Pourquoi rsync ?

Plusieurs fonctionnalités et capacités de rsync en font un outil particulièrement adapté à ce processus de synchronisation des données, notamment :

  • Une configuration et une automatisation faciles grâce aux scripts.
  • Rapidité et optimisation grâce à la synchronisation des seules modifications.
  • Une navigation récursive dans la structure des fichiers pour détecter les fichiers modifiés.
  • La possibilité de reprendre des transferts interrompus.
  • Une forte compatibilité multiplateforme permettant de couvrir de nombreux cas d'utilisation.

Environnement du scénario

Les aspects techniques de ce scénario sont les suivants. Les lecteurs peuvent adapter les emplacements, les noms d’hôtes et les adresses IP en fonction de leur environnement.

Au siège social :

  • Serveur de fichiers Linux central nommé file-server01, avec l’adresse IP 192.168.1.10/24
  • Capacité de stockage et performances suffisantes pour prendre en charge les données attendues.
  • Rsync installé.
  • Répertoire cible pour les données entrantes, tel que /data/branches. Ajouter des sous-répertoires pour chaque serveur de fichiers des succursales.

Dans les succursales :

  • Succursale 2 : serveur de fichiers Linux local nommé « file-server02 » avec l'adresse IP 192.168.2.30/24
  • Succursale 3 : serveur de fichiers Linux local nommé « file-server03 » avec l'adresse IP 192.168.3.22/24
  • Succursale 4 : serveur de fichiers Linux local nommé file-server04, avec l'adresse IP 192.168.4.27/24
  • Répertoires de données cohérents sur chaque serveur, tels que /srv/data.
  • Connexion Internet ou VPN fiable, avec chiffrement.

Envisagez de mettre à jour vos serveurs de fichiers Linux vers les mêmes versions des mêmes distributions. Mettez à jour toutes les applications concernées, en particulier rsync lui-même, vers la même version. Bien que ces étapes ne soient pas strictement nécessaires, elles permettent d’éviter des différences mineures entre les versions logicielles.

Chart of a sample network of servers

Notez que macOS intègre rsync par défaut. Installez rsync sous Windows à l'aide du sous-système Windows pour Linux (WSL) ou de Cygwin.

Configurer les connexions

Configurez la résolution des noms DNS pour simplifier la gestion, ce qui permettra à vos commandes d’utiliser les noms d’hôte des serveurs plutôt que leurs adresses IP.

Tunnelisez ces connexions via SSH pour bénéficier d’un chiffrement fiable. Configurez l’authentification par clé SSH pour une connexion sans mot de passe. Voici les étapes générales :

1/ Créez un compte dédié, tel que « backupadmin », pour le processus rsync sur chaque serveur de fichiers des succursales et sur le serveur de fichiers du siège.

2/ Générez les clés pour le compte « backupadmin » que rsync utilisera sur le serveur de fichiers du siège à l’aide de la commande ssh-keygen.

3/ Distribuez la clé publique à chacun des serveurs de succursale à l’aide de la commande ssh-copy-id backupadmin@file-server02. Adaptez la commande pour les deux autres serveurs de fichiers.

4/ Testez la configuration pour vous assurer que SSH ne demande pas de mot de passe au compte « backupadmin ».

Screenshot of user configuring SSH key authentication in rsync

« Push » ou « pull » ?

Deux stratégies s’offrent à vous lors de la conception de vos configurations rsync : la méthode « push » ou la méthode « pull ».

  • Méthode « push ». Les serveurs de fichiers des succursales établissent une connexion avec le serveur du siège et y « poussent » (push) les fichiers modifiés.
  • Méthode « pull ». Le serveur de fichiers du siège établit la connexion avec les serveurs des succursales et « tire » (pull) les fichiers modifiés depuis ceux-ci.

Ce scénario utilise la méthode « pull » afin de confier la gestion de la configuration rsync au service informatique central du siège. Il simplifie également la gestion des comptes et les configurations SSH.

Exécution des commandes rsync

Rsync utilise une syntaxe Linux standard : la commande est suivie d’options, puis des cibles source et destination.

rsync [options] source destination

Si vous utilisez un système distant comme source, indiquez un compte disposant des droits nécessaires pour accéder aux données requises. La destination est un chemin d'accès à un fichier local.

rsync [options] account@remotesystem:/path /local/path

Pour synchroniser les fichiers du répertoire /srv/data du système distant file-server02 (en tant qu'utilisateur backadmin) avec le répertoire local /data/branches/file-server02, tapez :

rsync [options] backupadmin@file-server02:/srv/data /data/branches/file-server02

Il existe de nombreuses options permettant de modifier le comportement de rsync. En voici quelques-unes parmi les plus courantes :

-a : Mode archive permettant de conserver les droits d'accès, les horodatages et les liens symboliques.

-v : mode détaillé pour améliorer la pertinence des entrées du fichier journal.

-z : compresse les fichiers pour des transferts plus efficaces.

--delete : supprime du stockage du siège les fichiers supprimés au niveau des succursales.

Utilisez la commande man cron pour ouvrir la page de manuel de cron si vous avez besoin d’aide concernant ces options.

Votre commande de base ressemblera à ceci :

rsync -avz --delete backupadmin@file-server02:/srv/data /data/branches/file-server02

Répétez la commande en l'adaptant en conséquence pour « file-server03 » et « file-server04 ».

Lors de la configuration de rsync, vous pouvez notamment utiliser sa fonctionnalité intégrée de « simulation ». En ajoutant l'option -n, vous pouvez tester la commande sans transférer de données. Cette fonctionnalité peut s'avérer particulièrement utile pour les tests.

Configurer la journalisation de rsync

Rsync peut générer des entrées de log dans des fichiers de journalisation personnalisés. Ajoutez l'option --log-file={chemin} à la commande rsync standard.

Par exemple, pour générer un fichier de log pour la ressource distante file-server02, utilisez la commande suivante :

rsync -avz --delete --log-file=/var/log/backups/file-server02.log backupadmin@file-server02:/srv/data /data/branches/file-server02

You can then view the log file entries in the /var/log/backups/file-server02.log file.

Vous pouvez ensuite consulter les entrées du fichier log dans le fichier /var/log/backups/file-server02.log.

Mise en œuvre de rsync

Vous êtes désormais prêt à mettre en œuvre votre plan de centralisation des données, avec plusieurs options de configuration possibles.

Planification de rsync. L'une des options les plus simples consiste à intégrer les commandes rsync ci-dessus dans le fichier de configuration /etc/crontab de votre système Linux. Ce fichier offre de nombreuses possibilités pour définir à quel moment le système exécutera rsync.

Par exemple, pour que rsync se connecte au serveur de fichiers de la succursale 2 tous les soirs à 23 h, tapez :

0 23 * * * rsync -avz --delete --log-file=/var/log/backups/file-server02.log backupadmin@file-server02:/srv/data /data/branches/file-server02

Screenshot of user scheduling backups in rsync

Cette configuration exécute la commande à la 0e minute de la 23e heure, tous les jours, tous les mois et tous les jours de la semaine. Cela constitue une approche efficace de sauvegarde incrémentielle.

Répétez le processus pour les deux autres serveurs de fichiers des succursales. Envisagez de configurer chaque tâche de synchronisation des serveurs de succursales à une heure différente afin d’éviter de surcharger les systèmes de stockage et le réseau du serveur de fichiers du siège social.

Création d’un script. Au lieu d’utiliser la planification, vous pourriez envisager un script Bash légèrement plus complexe offrant davantage de flexibilité, par exemple en incluant plusieurs cibles de copie de fichiers.

Par exemple, vous pourriez souhaiter que votre tâche rsync synchronise le contenu de /srv/data et les fichiers journaux situés dans /var/log. Ou peut-être souhaitez-vous que ce même processus de synchronisation inclue également les répertoires personnels des utilisateurs.

Les scripts vous permettent également d’ajouter des commentaires sur les différentes commandes ou de fournir d’autres indications au reste de l’équipe informatique.

Une fois que vous êtes satisfait de votre script, planifiez-le avec cron en utilisant une syntaxe similaire à celle employée ci-dessus.

Une fois que vous aurez lancé votre projet de centralisation des données, veillez à mettre en place des politiques de conservation des données afin de gérer la consommation de stockage et de respecter les exigences réglementaires du secteur. Vous devrez peut-être également tenir compte des exigences applicables en matière de souveraineté des données.

Cet article est initialement paru en anglais Sur SearchDataBackup.

Pour approfondir sur Administration du stockage