mars 6, 2022

Comment sauvegarder un système Debian en utilisant Backupninja

Dernière mise à jour le 19 septembre 2020 par Gabriel Cánepa

La prudence ou l’expérience en cas de catastrophe peuvent enseigner à chaque administrateur système l’importance de faire des sauvegardes système fréquentes. Vous pouvez le faire en écrivant de bons vieux scripts shell ou en utilisant un (ou plusieurs) des nombreux outils de sauvegarde disponibles pour le travail (par exemple, Clonezilla, Duplicity). Ainsi, plus vous vous familiariserez avec les outils, plus vous prendrez de décisions éclairées lors de la mise en œuvre d’une solution de sauvegarde.

Dans cet article, nous présenterons Backupninja, un outil de sauvegarde système léger et facile à configurer. Avec l’aide de programmes comme rdiff-backup, duplicity, mysqlhotcopy et mysqldump, Backupninja offre des fonctionnalités de sauvegarde courantes telles que des sauvegardes à distance, sécurisées et incrémentielles du système de fichiers, des sauvegardes cryptées et des sauvegardes de bases de données MySQL / MariaDB. Vous pouvez activer de manière sélective les rapports d’état par e-mail et sauvegarder également des informations générales sur le matériel et le système. L’une des principales forces de Backupninja est un assistant intégré basé sur la console (appelé ninjahelper) qui vous permet de créer facilement des fichiers de configuration pour divers scénarios de sauvegarde.

L’inconvénient, pour ainsi dire, est que Backupninja nécessite l’installation d’autres programmes d’assistance afin de tirer pleinement parti de toutes ses fonctionnalités. Alors que le paquet RPM de Backupninja est disponible pour les distributions basées sur Red Hat, les dépendances de Backupninja sont optimisées pour Debian et ses dérivés. Il n’est donc pas recommandé d’essayer Backupninja pour les systèmes basés sur Red Hat.

Dans ce tutoriel, nous aborderons l’installation de Backupninja pour les distributions basées sur Debian.

Installation de Backupninja

Exécutez la commande suivante en tant que root:

# aptitude install backupninja

Lors de l’installation, plusieurs fichiers et répertoires seront créés:

  • /usr/sbin/backupninja est le script shell principal de bash.
  • /etc/cron.d/backupninja, par défaut, indique à cron d’exécuter le script principal une fois par heure.
  • /etc/logrotate.d/backupninja fait pivoter les journaux créés par le programme.
  • /etc/backup.d/ est le répertoire dans lequel résident les fichiers de configuration des actions de sauvegarde.
  • /etc/backupninja.conf est le fichier de configuration principal qui inclut des options générales. Il est bien commenté et explique chaque option en détail.
  • /usr/share/backupninja est le répertoire où se trouvent les scripts utilisés par Backupninja (alias gestionnaires). Ce sont les scripts qui sont en charge de faire le travail réel. Dans ce répertoire, vous trouverez également les fichiers .helper, qui sont utilisés pour configurer et configurer les menus ninjahelper.
  • /usr/share/doc/backupninja/examples contient des modèles pour les fichiers de configuration d’action (le type de fichiers créés via ninjahelper).

Exécuter ninjahelper pour la première fois

Lorsque nous essayons de lancer ninjahelper, nous pouvons voir qu’une dépendance interne peut être requise. Si vous y êtes invité, entrez yes et appuyez sur la touche ENTER pour installer dialog (un outil qui affiche des boîtes de dialogue conviviales à partir de scripts shell).

Lorsque vous appuyez sur Entrée après avoir tapé oui, Backupninja installera la boîte de dialogue et présentera l’écran suivant une fois que c’est fait.

Exemple 1 : Sauvegarde des informations matérielles et système

Après le lancement de ninjahelper, nous allons créer une nouvelle action de sauvegarde:

Si les programmes d’assistance nécessaires ne sont pas installés, les écrans suivants nous seront présentés. Ignorez cette étape si ces paquets ont déjà été installés sur votre système.

L’étape suivante consiste à sélectionner les éléments que vous souhaitez faire partie de cette sauvegarde. Les quatre premiers sont sélectionnés par défaut, mais vous pouvez les désélectionner en appuyant sur la barre d’espace.

Une fois que vous avez terminé, appuyez sur OK pour continuer. Vous pourrez choisir si vous souhaitez utiliser le fichier de configuration par défaut pour cette action de sauvegarde (/etc/backup.d/10.sys), ou si vous souhaitez en créer un nouveau. Dans ce dernier cas, un nouveau fichier avec le même contenu que celui par défaut sera créé sous le même répertoire mais nommé 11.sys, et ainsi de suite pour les futures actions de sauvegarde du système. Notez que vous pouvez modifier le fichier de configuration une fois qu’il est créé avec votre éditeur de texte préféré.

Exemple 2: Sauvegarde Rsync incrémentale d’un répertoire distant

Comme vous le savez probablement, rsync est largement utilisé pour synchroniser des fichiers et des dossiers sur un réseau. Dans l’exemple suivant, nous discuterons d’une approche consistant à effectuer des sauvegardes incrémentielles d’un répertoire distant avec liaison matérielle pour enregistrer les données historiques et les stocker dans notre serveur de fichiers local. Cette approche nous aidera à économiser de l’espace et à augmenter la sécurité côté serveur.

Étape 1: Écrivez un script personnalisé dans le répertoire /etc/backup.d avec le contenu suivant et chmod dans 600. Notez que ce répertoire peut contenir, outre des fichiers de configuration simples, des scripts que vous souhaitez exécuter lors de l’exécution de Backupninja, avec l’avantage d’utiliser des variables présentes dans le fichier de configuration principal.

# REMOTE USERuser=root# REMOTE HOSThost=dev1# REMOTE DIRECTORYremotedir=/home/gacanepa/# LOCAL DIRECTORYlocaldir=/home/gacanepa/backup.0# LOCAL DIRECTORY WHERE PREVIOUS BACKUP WAS STOREDlocaldirold=/home/gacanepa/backup.1mv $localdir $localdirold# RSYNCrsync -av --delete --recursive --link-dest=$localdirold $host:$remotedir $localdir

Dans la configuration ci-dessus, l’option --link-dest de rsync est utilisée pour lier en dur les fichiers inchangés (dans tous les attributs) de $localdir-old au répertoire de destination ($localdir).

Étape 2: Avant que Backupninja ne soit exécuté pour la première fois, le répertoire parent (/home/gacanepa dans ce cas) est vide. La première fois que nous exécutons:

# backupninja -n

Le répertoire backup.0 est créé, et plus tard dans le processus, son nom est changé en backup.1.

La deuxième fois que nous exécutons Backupninja, backup.0 est recréé et backup.1 est conservé.

Étape 3: Vérifiez que le contenu de backup.1 est un lien dur vers les fichiers de backup.0 en comparant les numéros d’inode et les tailles de répertoire respectifs.

Conclusion

Backupninja n’est pas seulement un outil de sauvegarde classique, mais aussi un utilitaire facile à configurer. Vous pouvez écrire vos propres gestionnaires pour exécuter Backupninja selon les fichiers de configuration individuels situés dans /etc/backup.d, et vous pouvez même écrire des assistants pour ninjahelper afin de les inclure dans son interface principale.

Par exemple, si vous créez un gestionnaire nommé xmodulo dans /usr/share/backupninja, il exécutera par défaut tous les fichiers avec l’extension .xmodulo dans /etc/backup.d. Si vous décidez d’ajouter votre gestionnaire xmodulo à ninjahelper, vous pouvez écrire l’assistant correspondant comme xmodulo.helper. De plus, si vous souhaitez que Backupninja exécute un script arbitraire, ajoutez-le simplement à /etc/backup.d et vous êtes prêt à partir. Reportez-vous à ce tutoriel Backupninja pour plus de détails sur la création d’un plan de sauvegarde personnalisé.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.