GNU/Linux >> Tutoriels Linux >  >> AlmaLinux

Comment configurer le serveur de sauvegarde à l'aide de Rsnapshot sous Linux

Ce guide explique ce qu'est Rsnapshot, comment installer Rsnapshot sous Linux et comment configurer le serveur de sauvegarde à l'aide de Rsnapshot sous Linux.

1. Présentation

Rinstantané est un utilitaire d'instantané de système de fichiers basé sur rsync pour les systèmes d'exploitation de type Linux et Unix. Il vous permet de créer facilement des instantanés périodiques des machines locales et des machines distantes via ssh.

La bonne chose à propos de rsnapshot est qu'il utilise largement les liens physiques dans la mesure du possible, afin de réduire considérablement l'espace disque requis.

Étant donné que rsnapshot ne conserve qu'un nombre fixe d'instantanés, la quantité d'espace disque utilisée n'augmentera pas continuellement.

Rnapshot est une application de sauvegarde gratuite et open source qui prend en charge les sauvegardes incrémentielles. Il est entièrement écrit en perl , et cela devrait fonctionner sur la plupart des systèmes de type Unix.

Sans plus tarder, voyons comment installer, configurer et configurer le serveur de sauvegarde à l'aide de Rsnapshot sous Linux.

2. Installer Rsnapshot sous Linux

Rsnapshot est packagé pour de nombreuses distributions Linux.

Installez Rsnaphot dans Alpine Linux :

$ sudo apk add rsnapshot rsync

Installer Rsnapshot est Arch Linux, EndeavourOS et Manjaro Linux :

$ sudo pacman -S rsnapshot rsync

Installez Rsnapshot dans Debian, Ubuntu, Linux Mint, Pop_OS ! :

$ sudo apt install rsnapshot rsync

Installez Rsnapshot dans CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux :

Rsnapshot n'est pas disponible dans les référentiels par défaut des systèmes d'exploitation d'entreprise tels que CentOS, RHEL, AlmaLinux et Rocky Linux. Vous devez activer [EPEL] référentiel afin d'installer Rsnapshot.

$ sudo dnf install epel-release

Ensuite, installez Rsnapshot à l'aide de la commande :

$ sudo dnf install rsnapshot rsync

Installez Rsnapshot dans openSUSE :

$ sudo zypper install rsnapshot rsync

3. Configurer le serveur de sauvegarde à l'aide de Rsnapshot sous Linux

Pour les besoins de ce guide, j'utiliserai deux systèmes de test.

L'un est un serveur de sauvegarde fonctionnant avec AlmaLinux 8 et un autre agit en tant que système client. Le client fonctionne avec le bureau Fedora 34.

Les détails du serveur de sauvegarde et du client sont donnés ci-dessous.

Serveur de sauvegarde :

  • SE :Système minimal AlmaLinux 8 64 bits
  • Adresse IP :192.168.122.25/24
  • Répertoire racine Rsnapshot :/rsnapbackup
  • Répertoire à sauvegarder :/home/ostechnix/data/

Client :

  • SE :Station de travail Fedora 34
  • Adresse IP :192.168.225.37/24
  • Répertoire à sauvegarder :/home/sk/data/

3.1. Configurer l'authentification SSH sans mot de passe sur le serveur de sauvegarde

Pour sauvegarder les fichiers d'un système client distant via SSH, vous devez configurer l'authentification SSH sans mot de passe pour les systèmes clients distants, la sauvegarde se connectera automatiquement au système client sans mot de passe et sauvegardera les données client.

Connectez-vous en tant que root utilisateur et créez une paire de clés SSH dans notre système de serveur de sauvegarde.

# ssh-keygen

N'entrez aucune phrase de passe , car nous voulons que ces systèmes puissent se connecter les uns aux autres sans aucune intervention de l'utilisateur :

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|   o.==. o.      |
|  . =o.....      |
|   ... +.        |
|....+ o...       |
|.ooo.o oS.       |
| o.oo +.E+       |
| .o .*..o .      |
| +....ooo        |
|o..o===+..       |
+----[SHA256]-----+

Ensuite, copiez la clé publique SSH sur tous vos systèmes clients distants.

# ssh-copy-id [email protected]

Remplacez sk et 192.168.225.37 dans la commande ci-dessus avec le nom d'utilisateur et l'adresse IP de votre système distant. Entrez votre mot de passe d'utilisateur du système client pour copier le fichier de clé publique :

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Ici, 192.168.225.37 est l'adresse IP de mon système client distant (c'est-à-dire Fedora Desktop).

Vous pouvez maintenant vous connecter en ssh au système client sans mot de passe.

Répétez la commande ci-dessus pour copier la clé publique ssh sur tous vos systèmes clients afin de configurer l'authentification sans mot de passe.

Ensuite, nous devons configurer le serveur de sauvegarde.

3.2. Configuration du serveur de sauvegarde Rsnapshot

Créer un répertoire de sauvegarde racine pour enregistrer toutes les sauvegardes de vos systèmes serveur et client.

Pour les besoins de ce guide, j'utilise /rsnapbackup/ comme répertoire de sauvegarde racine. C'est le répertoire où je vais stocker toutes les sauvegardes.

Vous pouvez définir votre propre emplacement de votre choix pour stocker les sauvegardes.

Créons le répertoire de sauvegarde racine dans notre serveur de sauvegarde avec la commande :

# mkdir /rsnapbackup

Ensuite, nous devons modifier et mettre à jour le répertoire de sauvegarde racine, les répertoires que vous souhaitez sauvegarder et les intervalles de sauvegarde dans le fichier de configuration par défaut de Rsnapshot /etc/rsnapshot.conf .

Avant de modifier la configuration, il est toujours recommandé de faire une sauvegarde du fichier de configuration par défaut au cas où vous auriez besoin de reconfigurer rsnapshot à nouveau.

# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak

Maintenant, modifiez le fichier de configuration de rsnapshot à l'aide de la commande :

# nano /etc/rsnapshot.conf

La configuration par défaut devrait fonctionner correctement. Il vous suffit de définir les répertoires de sauvegarde et les intervalles de sauvegarde.

Attention : Veuillez noter que vous devez spécifier une barre oblique finale à la fin des noms de répertoires dans /etc/rsnapshot.conf dossier. Supposons, par exemple, que vous devez spécifier le nom du répertoire sous la forme /rsnapbackup/ , mais pas /rsnapbackup . De plus, vous devez utiliser des tabulations (et non des espaces) entre les éléments/champs .

Tout d'abord, configurons le répertoire de sauvegarde racine, c'est-à-dire définissons le répertoire dans lequel nous voulons stocker les sauvegardes du système de fichiers. Dans notre cas, je stockerai les sauvegardes dans /rsnapbackup/ répertoire.

# All snapshots will be stored under this root directory.
#
snapshot_root   /rsnapbackup/

Encore une fois, vous devez utiliser la touche TAB entre snapshot_root élément et votre répertoire de sauvegarde.

Remarque : Rsnapshot ne le fait pas prendre en charge une racine d'instantané distant via SSH.

Faites défiler un peu vers le bas et assurez-vous que les lignes suivantes (marquées en gras) ne sont pas commentées :

[...]
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################

# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /usr/bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /usr/bin/rm

# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync

# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh /usr/bin/ssh

# Comment this out to disable syslog support.
#
cmd_logger /usr/bin/logger

# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
cmd_du /usr/bin/du

[...]

Ensuite, nous devons définir les intervalles de sauvegarde :

#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################

retain alpha 6
retain beta 7
retain gamma 4
#retain delta 3

Ici, retenir l'alpha 6 signifie que chaque fois que rsnapshot alpha exécuté, il créera un nouvel instantané, fera pivoter les anciens et conservera les six sauvegardes les plus récentes dans les répertoires nommés alpha.0 , alpha.1 ,... alpha.5 dans le répertoire racine de Rsnapshot. Ensuite, la prochaine fois que la commande est exécutée, le alpha.5 répertoire sera supprimé.

De même, lorsque nous appelons rsnapshot beta à chaque fois, il créera un nouvel instantané, alternera les anciens et conservera les 7 sauvegardes les plus récentes (delta.0 - delta.6)

Veuillez noter que le alpha , beta , gamma , et delta sont juste les noms pour définir les intervalles de sauvegarde. Vous pouvez également définir vos propres intervalles.

Par exemple, vous pouvez remplacer les niveaux de sauvegarde par défaut par des noms significatifs de votre choix comme ci-dessous :

retain  hourly  24
retain  daily   7
retain  weekly  4
retain  monthly 12

Lorsque nous appelons rnsapshot hourly , il créera une nouvelle sauvegarde dans <rsnapshot-root>/hourly.0/ annuaire. Lorsque vous exécutez cette commande à chaque fois, elle continuera à créer de nouveaux répertoires jusqu'à <rsnapshot-root>/hourly.23/ .

Il en va de même pour les sauvegardes quotidiennes, hebdomadaires et mensuelles.

Décommentez ensuite la ligne suivante si vous souhaitez définir le fichier journal pour Rsnapshot :

logfile /var/log/rsnapshot

Si vous avez modifié le port SSH par défaut , vous devez décommenter cette ligne et mentionner le numéro de port valide ici :

ssh_args -p 2222

Enfin, vous devez définir les répertoires que vous souhaitez sauvegarder. Recherchez les directives suivantes dans votre fichier de configuration rsnapshot et définissez les emplacements des répertoires de sauvegarde.

###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
backup /home/ostechnix/data/ myserverbackup/

Ici, je vais sauvegarder le contenu de /home/ostechnix/data/ répertoire et enregistrez-les dans /rsnapbackup/myserverbackup/ répertoire.

Attention : Veuillez noter que je n'ai pas spécifié le chemin complet (c'est-à-dire /rsnapbackup/myserverbackup/ ) dans la configuration ci-dessus. Parce que nous avons déjà mentionné le répertoire de sauvegarde racine plus tôt. Nous n'avons donc pas besoin de spécifier ici le répertoire racine de Rsnapshot.

De même, définissez l'emplacement de sauvegarde de vos systèmes clients distants.

# REMOTEHOST
backup [email protected]:/home/sk/data/ myclientbackup/

Ici, je vais sauvegarder le contenu de /home/sk/data/ de mon système client distant répertoire et enregistrez-les dans /rsnapbackup/myclientbackup/ répertoire de mon serveur de sauvegarde.

Encore une fois, veuillez noter que je n'ai pas spécifié le chemin complet (/rsnapbackup/myclientbackup/ ) dans la configuration ci-dessus. Parce que nous avons déjà défini le répertoire de sauvegarde racine.

Enregistrez et fermez /etc/rsnapshot.conf fichier.

Une fois que vous avez apporté toutes vos modifications, exécutez la commande suivante pour vérifier que la syntaxe du fichier de configuration est valide.

$ rsnapshot configtest

Si tout va bien, vous verrez la sortie suivante.

Syntax OK

3.3. Démarrer les sauvegardes

Exécutez la commande suivante pour démarrer manuellement la sauvegarde à l'aide de Rsnapshot.

# rsnapshot alpha

La première sauvegarde prendra de quelques minutes à plusieurs heures selon la taille des sauvegardes. Les sauvegardes suivantes seront beaucoup plus rapides, car Rsnapshot ne sauvegardera que les différences.

De même, vous pouvez démarrer d'autres niveaux de sauvegarde :

# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily

3.4. Vérification et affichage des sauvegardes

Vérifions si les sauvegardes sont vraiment stockées dans le répertoire de sauvegarde racine du serveur de sauvegarde.

# ls /rsnapbackup/

Vous verrez la sortie suivante :

alpha.0

Vérifiez le contenu de alpha.0 répertoire :

# ls /rsnapbackup/alpha.0/

Vous verrez qu'il y a deux répertoires créés automatiquement, un pour la sauvegarde locale (myserverbackup) et un autre pour les systèmes distants (myclientbackup).

myclientbackup  myserverbackup

Pour vérifier les sauvegardes du système client, exécutez :

# ls /rsnapbackup/alpha.0/myclientbackup/

Vérifiez les sauvegardes du système serveur (système local) :

# ls /rsnapbackup/alpha.0/myserverbackup/

Lorsque vous exécutez Rnaspshot chacun, il créera de nouveaux répertoires tels que alpha.0 , alpha.1 et ainsi de suite, selon le nombre de niveaux de conservation que vous avez configurés.

# ls /rsnapbackup/
alpha.0  alpha.1

Le alpha.0 répertoire contiendra la sauvegarde la plus récente.

3.5. Planifier des sauvegardes

Vous n'avez pas besoin d'exécuter la commande rsnapshot pour créer des sauvegardes à chaque fois. Définissez simplement une tâche cron pour automatiser les tâches de sauvegarde à intervalles réguliers.

Pour ce faire, créez un nouveau fichier de tâche cron pour rsnapshot :

# nano /etc/cron.d/rsnapshot

Ajoutez les lignes suivantes :

0 */4 * * *     /usr/bin/rsnapshot alpha
50 23 * * *     /usr/bin/rsnapshot beta
00 22 1 * *     /usr/bin/rsnapshot delta

La première ligne indique qu'il y aura six alpha instantanés pris chaque jour (à 0, 4, 8, 12, 16 et 20 heures), bêta instantanés pris tous les soirs à 23h50, et delta des instantanés seront pris à 22 heures le premier jour de chaque mois. Vous pouvez ajuster le temps selon votre souhait. Enregistrez et fermez le fichier.

Fait! Désormais, Rsnapshot sauvegardera automatiquement vos données à l'heure définie.

Pour plus de détails, reportez-vous aux pages de manuel.

# man rsnapshot

4. Restaurer les fichiers

La restauration de fichiers est facile ! Si vous avez sudo ou root accès sur le serveur de sauvegarde, vous pouvez simplement copier les fichiers du répertoire racine de Rsnapshot, c'est-à-dire /rsnapbackup/ .

5. Conclusion

Configurer un serveur de sauvegarde avec Rsnapshot sous Linux n'est pas si difficile. La configuration initiale peut sembler difficile et prendre un peu de temps. Mais une fois que vous avez correctement configuré le serveur de sauvegarde Rsnapshot, il fonctionnera pour toujours, sans aucune intervention de l'utilisateur.

Ressources :

  • Site Web de Rsnapshot
  • Référentiel Rsnapshot GitHub

Lire connexe :

  • Comment sauvegarder l'intégralité de votre système Linux à l'aide de Rsync
  • Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux
  • Comment sauvegarder et restaurer des fichiers à l'aide de Deja Dup sous Linux
  • Comment sauvegarder et restaurer le système Linux avec Timeshift
  • Comment synchroniser des fichiers avec Unison sous Linux
  • Comment synchroniser les répertoires locaux et distants sous Linux
  • Comment synchroniser des fichiers et des répertoires à l'aide de Zaloha.sh
  • CYA – Utilitaire d'instantané et de restauration du système pour Linux
  • Restic – Une application de sauvegarde rapide, sécurisée et efficace

AlmaLinux
  1. Comment créer une sauvegarde

  2. Comment configurer un serveur de journalisation centralisé à l'aide de Rsyslog

  3. Comment installer et configurer cPanel sur un serveur Linux

  4. Comment configurer SSH sans mot de passe sous Linux

  5. Comment configurer un tunnel SSH inversé sous Linux

Comment surveiller les serveurs Linux à l'aide de CloudStats

Comment configurer un serveur multimédia en streaming à l'aide de Jellyfin sous Linux

Comment sauvegarder le système de fichiers Linux à l'aide de la commande dump

Comment effectuer une sauvegarde Linux à distance à l'aide de SSH

Comment sauvegarder un hôte Linux distant à l'aide de l'utilitaire rsnapshot rsync

Comment configurer le serveur et le client VPN Linux à l'aide d'OpenVPN