RSNAPSHOT (basé sur RSYNC) - Un utilitaire de sauvegarde du système de fichiers local / distant pour Linux

RSNAPSHOT (basé sur RSYNC) - Un utilitaire de sauvegarde du système de fichiers local / distant pour Linux

rsnapshot est une open source local / / télécommande L'utilitaire de sauvegarde du système de fichiers a été écrit Perler langue qui avantage la puissance de Rsync et Ssh programme à créer, des sauvegardes incrémentielles planifiées de Linux/ /Unix Systèmes de fichiers, tout en prenant uniquement l'espace d'une seule sauvegarde complète et des différences et ne gardez ces sauvegardes local conduire à différent disque dur, un externe USB coller, un lecteur monté NFS ou simplement sur le réseau vers une autre machine via Ssh.

Installez l'outil de sauvegarde RSNAPShot

Cet article montrera comment installer, configurer et utiliser rsnapshot Pour créer incrémentiel de temps, quotidien, hebdomadaire et mensuel sauvegardes locales, ainsi que des sauvegardes à distance. Pour effectuer toutes les étapes de cet article, vous devez être racine utilisateur.

Étape 1: Installation de la sauvegarde RSNAPShot dans Linux

Installation de rsnapshot en utilisant Miam et APTE peut diffère légèrement, si vous utilisez chapeau rouge et Debian distributions basées.

Sur Rhel / Centos

Vous devrez d'abord installer et activer le référentiel tiers appelé Epel. Veuillez suivre le lien ci-dessous pour installer et activer sous votre Rhel/ /Centos systèmes. Feutre Les utilisateurs ne nécessitent aucune configuration de référentiel spécial.

  1. Installer et activer le référentiel EPEL dans RHEL / CENTOS 6/5/4

Une fois la configuration des choses, installez-vous rsnapshot de la ligne de commande comme indiqué.

# yum install rsnapshot
Sur Debian / Ubuntu / Linux Mint

Par défaut, rsnapshot inclus dans Ubuntules référentiels, vous pouvez donc l'installer en utilisant apt-get Commande comme indiqué.

# apt-get install rsnapshot

Étape 2: Configuration de la connexion sans mot de passe SSH

Pour sauvegarder les serveurs Linux distants, votre serveur de sauvegarde RSNAPShot Pourra se connecter à travers Ssh sans mot de passe. Pour ce faire, vous devrez créer un Ssh clés publiques et privées pour s'authentifier sur le rsnapshot serveur. Veuillez suivre le lien ci-dessous pour générer des clés publiques et privées sur votre rsnapshot serveur de sauvegarde.

  1. Créer une connexion sans mot de passe SSH à l'aide de SSH Keygen

Étape 3: Configuration de rsnapshot

Vous devrez maintenant modifier et ajouter quelques paramètres à rsnapshot fichier de configuration. Ouvrir rsnapshot.confli déposer avec vi ou nano éditeur.

# vi / etc / rsnapshot.confli

Créez ensuite un répertoire de sauvegarde, où vous souhaitez stocker toutes vos sauvegardes. Dans mon cas, mon emplacement de répertoire de sauvegarde est «/sauvegarde de données/". Recherchez et modifiez le paramètre suivant pour définir l'emplacement de sauvegarde.

snapshot_root / data / backup /

Aussi non les comment le «cmd_ssh”Ligne pour permettre de prendre des sauvegardes à distance Ssh. Pour décomiser la ligne, retirez le «#”Sur le front de la ligne suivante pour que rsnapshot peut transférer en toute sécurité vos données sur un serveur de sauvegarde.

cmd_ssh / usr / bin / ssh

Ensuite, vous devez décider du nombre de vieilles sauvegardes que vous souhaitez conserver, car Rsnapshot ne savait pas à quelle fréquence vous voulez prendre des instantanés. Vous devez spécifier la quantité de données à enregistrer, ajouter des intervalles à conserver et combien de chacun.

Eh bien, les paramètres par défaut sont assez bons, mais j'aimerais quand même que vous permis de permettre "mensuel«Intervalle afin que vous puissiez également avoir des sauvegardes à plus long terme. Veuillez modifier cette section pour ressembler aux paramètres ci-dessous.

############################################ # intervalles de sauvegarde # # # doit être unique et Dans l'ordre croissant # # i.e. horaire, quotidien, hebdomadaire, etc. # ########################################## Intervals Hourly 6 Intervalle 7 Intervalle hebdomadaire 4 intervalles mensuels 3

Une autre chose que vous devez modifier est «ssh_args»Variable. Si vous avez changé la valeur par défaut Port ssh (22) Pour autre chose, vous devez spécifier ce numéro de port de votre serveur de sauvegarde à distance.

ssh_args -p 7851

Enfin, ajoutez vos répertoires de sauvegarde locaux et distants que vous souhaitez sauvegarder.

Répertoires locaux de sauvegarde

Si vous avez décidé de sauvegarder vos répertoires localement dans la même machine, l'entrée de sauvegarde ressemblerait à ceci. Par exemple, je prends une sauvegarde de mon / Tecmint et /etc répertoires.

Sauvegarde / tecmint / localhost / backup / etc / localhost /
Répertoires distants de sauvegarde

Si vous souhaitez sauvegarder des répertoires de serveur distant, vous devez indiquer au RSNAPShot où se trouve le serveur et quels répertoires vous souhaitez sauvegarder. Ici, je prends une sauvegarde de mon serveur distant "/maison«Répertoire sous«/sauvegarde de données”Répertoire sur le serveur RSNAPShot.

sauvegarde [e-mail protégé]: / home / / data / backup /

Lisez également:

  1. Comment sauvegarder / synchroniser les répertoires à l'aide de l'outil RSYNC (synchronisation à distance)
  2. Comment transférer des fichiers / dossiers à l'aide de la commande SCP
Exclure les fichiers et les répertoires

Ici, je vais tout exclure, puis définir spécifiquement ce que je veux soutenir. Pour ce faire, vous devez créer un fichier excluant.

# vi / data / backup / tecmint.exclure

Obtenez d'abord la liste des répertoires que vous souhaitez sauvegarder et ajouter ( - * ) pour exclure tout le reste. Cela ne sauvegardera que ce que vous avez énuméré dans le fichier. Mon fichier d'exclusion ressemble à ci-dessous.

+ / boot + / data + / tecmint + / etc + / home + / opt + / root + / usr - / usr / * - / var / cache + / var - / *

L'utilisation de l'option d'exclusion du fichier peut être très délicate en raison de l'utilisation de rsync récursivité. Donc, mon exemple ci-dessus n'est peut-être pas ce que vous cherchez. Ajoutez ensuite le fichier excluant à rsnapshot.confli déposer.

exclure_file / data / backup / tecmint.exclure

Enfin, vous en avez presque fini avec la configuration initiale. Sauver la "/ etc / rsnapshot.confli»Fichier de configuration avant de se déplacer plus loin. Il existe de nombreuses options à expliquer, mais voici mon exemple de fichier de configuration.

config_version 1.2 snapshot_root / data / backup / cmd_cp / bin / cp cmd_rm / bin / rm CMD_RSYNC / USR / bin / rsync cmd_ssh / usr / bin / ssh cmd_logger / usr / bin / logger cmd_du / usr / bin / Du internet hour hound 6 interalon quotidien cmd_du / usr / bin / Du internet hour hound 6 interalon quotidien cmd_du / usr / bin / DU internet hour houre 6 interalon quotidien CMD_DU / USR / BIN / DU interne 7 Intervals hebdomadaire 4 Intervalle mensuel 3 ssh_args -p 25000 Verbose 2 Loglevel 4 Logfile / var / log / rsnapshot / exclure_file / data / backup / tecmint.Exclure RSYNC_LONG_ARGS - Delete --numeric-IDS - Delete-Excluded LockFile / var / run / rsnapshot.PID BACKUP / Tecmint / LocalHost / Backup / et

Toutes les options ci-dessus et les explications d'arguments sont les suivantes:

  1. config_version 1.2 = Version du fichier de configuration
  2. snapshot_root = Destination de sauvegarde pour stocker des instantanés
  3. cmd_cp = Path to copier la commande
  4. cmd_rm = Path pour supprimer la commande
  5. CMD_RSYNC = Chemin vers RSYNC
  6. cmd_ssh = Chemin vers SSH
  7. cmd_logger = Interface de commande de chemin vers Shell à syslog
  8. cmd_du = Commande de chemin vers l'utilisation du disque
  9. intervalle toutes les heures = Combien de sauvegardes horaires à conserver.
  10. intervalle quotidien = Combien de sauvegardes quotidiennes pour conserver.
  11. intervalle chaque semaine = Combien de sauvegardes hebdomadaires pour conserver.
  12. intervalle mensuellement = Combien de sauvegardes mensuelles pour conserver.
  13. ssh_args = Arguments SSH facultatifs, comme un port différent (-p)
  14. verbeux = Explicite
  15. logevel = Explicite
  16. fichier journal = Chemin vers Logfile
  17. exclure_file = Chemin vers le fichier excluant (sera expliqué plus en détail)
  18. rsync_long_args = Arguments longs pour passer à Sync
  19. fichier de verrouillage = Explicite
  20. sauvegarde = Chemin complet vers ce qu'il faut être soutenu suivi d'un chemin relatif du placement.

Étape 4: Vérifiez la configuration de RSNAPShot

Une fois que vous avez terminé avec votre configuration, il est temps de vérifier que tout fonctionne comme prévu. Exécutez la commande suivante pour vérifier que votre configuration a la syntaxe correcte.

# Rsnapshot ConfigTest Syntaxe OK

Si tout est configuré correctement, vous recevrez un «Syntaxe ok" message. Si vous obtenez des messages d'erreur, cela signifie que vous devez corriger ces erreurs avant d'exécuter rsnapshot.

Ensuite, effectuez un test sur l'un des instantanés pour vous assurer que nous générons des résultats corrects. Nous prenons le «de temps”Paramètre pour effectuer un essai en utilisant -t (test) argument. Cette commande ci-dessous affichera une liste verbeuse des choses qu'il fera, sans les faire réellement.

# RSNAPSHOT -T heures
Échantillon de sortie
Echo 2028> / var / run / rsnapshot.PID MKDIR -M 0700 -P / DATA / BACKUP / MKDIR -M 0755 -P / DATA / BACKUP / HEURD.0 / / usr / bin / rsync -a --delete --numeric-ids --relalatif --delete-exclud / home \ / backup / horaire.0 / localhost / mkdir -m 0755 -p / backup / horaire.0 / / usr / bin / rsync -a --delete --numeric-ids --relalative --delete-exclud / etc \ / backup / horaire.0 / localhost / mkdir -m 0755 -p / data / backup / horaire.0 / / usr / bin / rsync -a --delete --numeric-ids --relalatif --delete-exclué \ / usr / local / data / backup / horly.0 / localhost / touch / data / backup / horaire.0 /

Note: La commande ci-dessus indique rsnapshot Pour créer un «de temps" sauvegarde. Il imprime en fait les commandes qu'il effectuera lorsque nous l'exécutons vraiment.

Étape 5: Exécution manuellement rsnapshot

Après avoir vérifié vos résultats, vous pouvez supprimer le «-t”Option pour exécuter la commande vraiment.

# RSNAPShot horaire

La commande ci-dessus exécutera le script de sauvegarde avec toute la configuration que nous avons ajoutée dans le rsnapshot.confli fichier et crée un "sauvegarde”Répertoire puis crée la structure du répertoire en dessous qui organise nos fichiers. Après avoir exécuté la commande ci-dessus, vous pouvez vérifier les résultats en accédant au répertoire de sauvegarde et répertorier la structure du répertoire à l'aide de la commande ls -l comme indiqué.

# cd / data / sauvegarde # ls -l total 4 drwxr-xr-x 3 racine racine 4096 28 oct. 09:11 heures.0

Étape 6: automatiser le processus

Pour automatiser le processus, Vous devez planifier rsnapshot être exécuté à certains intervalles à partir de Cron. Par défaut, rsnapshot livré avec cron dossier sous «/ etc / cron.d / rsnapshot«, Si cela n'existe pas en créer un et ajouter les lignes suivantes.

Par défaut, les règles sont commentées, vous devez donc supprimer le «#«Depuis devant la section de planification pour permettre ces valeurs.

# Ceci est un exemple de fichier cron pour rsnapshot. # Les valeurs utilisées correspondent aux exemples dans / etc / rsnapshot.confli. # Vous pouvez également définir les points de sauvegarde et bien d'autres choses. # # Pour activer ce fichier cron, vous devez décommenter les lignes ci-dessous. # N'hésitez pas à l'adapter à vos besoins. 0 * / 4 * * * root / usr / bin / rsnapshot horly 30 3 * * * root / usr / bin / rsnapshot quotidien 0 3 * * 1 root / usr / bin / rsnapshot hebdomadaire 30 2 1 * * root / usr / bac / rsnapshot mensuel

Permettez-moi d'expliquer exactement ce que fait les règles ci-dessus Cron:

  1. Fonctionne chaque 4 heures et crée un de temps répertoire sous /sauvegarde annuaire.
  2. Fonctionne quotidiennement 3h30 et créer un quotidien répertoire sous /sauvegarde annuaire.
  3. Courses hebdomadaire Sur tout Lundi à 03h00 et créer un hebdomadaire répertoire sous /sauvegarde annuaire.
  4. Fonctionne chaque mensuel à 2h30 et créer un mensuel répertoire sous /sauvegarde annuaire.

Pour mieux comprendre comment Cron Rules fonctionne, je vous suggère de lire notre article qui décrit.

  1. 11 exemples de planification Cron

Étape 7: Rsnapshot Rapports

Le rsnapshot Fournit un petit rapport astucieux Script perl qui vous envoie un alerte par e-mail avec tous les détails sur ce qui s'est produit lors de votre sauvegarde de données. Pour configurer ce script, vous devez copier le script quelque part sous «/ usr / local / bac»Et le rendre exécutable.

# cp / usr / share / doc / rsnapshot-1.3.1 / utils / rsnapreport.PL / USR / LOCAL / BIN # CHMOD + X / USR / LOCAL / BIN / RSNAPREPORT.PL

Ensuite, ajoutez "-Statistiques"Paramètre dans votre"rsnapshot.confli"Fichier à la section des longs arguments du RSYNC.

vi / etc / rsnapshot.confli
rsync_long_args --stats --delete --numeric-ids --delete-exclu

Maintenant, modifiez le Règles Crontab qui ont été ajoutés plus tôt et appelez le rsnapreport.PL script pour passer les rapports à l'adresse e-mail spécifiée.

# Ceci est un exemple de fichier cron pour rsnapshot. # Les valeurs utilisées correspondent aux exemples dans / etc / rsnapshot.confli. # Vous pouvez également définir les points de sauvegarde et bien d'autres choses. # # Pour activer ce fichier cron, vous devez décommenter les lignes ci-dessous. # N'hésitez pas à l'adapter à vos besoins. 0 * / 4 * * * root / usr / bin / rsnapshot horaire 2> & 1 | \ / usr / local / bin / rsnapreport.PL | Mail -S "Sauvegarde horaire" [Protégé par e-mail] 30 3 * * * ROOT / USR / BIN / RSNAPSHOT Daily 2> & 1 | \ / usr / local / bin / rsnapreport.PL | Mail -S "Sauvegarde quotidienne" [Protégé par e-mail] 0 3 * * 1 racine / usr / bin / rsnapshot hebdomadaire 2> & 1 | \ / usr / local / bin / rsnapreport.PL | Mail -S "Sauvegarde hebdomadaire" [Protégé par e-mail] 30 2 1 * * ROOT / USR / BIN / RSNAPSHOT mensuel 2> & 1 | \ / usr / local / bin / rsnapreport.PL | Mail -S "Montly Backup" [Protégé par e-mail]

Une fois que vous avez ajouté correctement les entrées ci-dessus, vous obtiendrez un rapport à votre adresse e-mail similaire à ci-dessous.

Source total fichiers fichiers trans total mb mb trans list gen time fichier xfer time ----------------------------------- -------------------------------------------------- ------------------- LocalHost / 185734 11853 2889.45 6179.18 40.661 seconde 0.000 secondes

Liens de référence

  1. Page d'accueil RSNAPSHOT

C'est tout pour l'instant, si des problèmes se produisent pendant l'installation, envoyez-moi un commentaire. Jusque-là, restez à l'écoute de Tecmint Pour des articles plus intéressants sur le monde open source.