Devenez le ninja de la sauvegarde !

Avec Backupninja, mettez en œuvre une sauvegarde simplement.

Backuninja est une application hyper simple qui accompagne l'utilisateur à mettre en place la sauvegarde d'une machine linux. Cette application a besoin de presque rien : on l'installe sur le système à sauvegarder, on le paramètre, et c'est tout.

backupninja

Backupninja permet de :

  • sauvegarder des bases mysql (détaillé ici), postgresql ;
  • créer des iso pour les graver, des tar ;
  • sauvegarder des fichiers de manière incrémentale (avec duplicity) ou par borg (infos sur borg) ;
  • sauvegarder de manière différentielle (avec rdiff, détaillé ici) ;
  • sauvegarder des informations système (avec hwinfo).

Si on respecte les bonnes pratiques (voir la règle des 1-2-3), il est nécessaire de sauvegarder sur une autre machine. Backupninja le permet en sauvegardant vers une autre machine hébergeant un serveur ssh.

Installation

Sur une Debian :

apt install backupninja

Configuration

Le fichier /etc/backupninja.conf concentre la configuration globale. Le répertoire /etc/backup.d contiendra toutes les configurations des sauvegardes à réaliser. Nous allons détailler des sauvegardes par mysql et par rdiff.

Commençons simple. On va utiliser l'outil de configuration de backupninja : ninjahelper ninjahelper

L'interface curses permet d'éditer la configuration et de piloter quelques travaux.

Mysql - Sauvegarde de bases mySQL

Lançons ninjahelper. Pour mysql, c'est mysqldump qui sera exécuté avec les options configurées. Sélectionner [new] puis [mysql]. Suivez les quelques questions successives (répertoire local des sauvegardes, bases à sauvegarder, l'authentification, compression), et c'est tout !

La configuration par défaut va sauvegarder tous les jours à 1h00 (paramétrable dans le fichier global, ou par action de sauvegarde avec le paramètre when =)

Aperçu de mon fichier /etc/backup.d/20.mysql

when = everyday at 01:00
hotcopy = no
sqldump = yes
compress = yes
backupdir = /var/backups/mysql
databases = all
configfile = /etc/mysql/debian.cnf

Pour exécuter immédiatement une tâche de sauvegarde, utilisez ninjahelper Sélectionnez l'action de sauvegarde, puis [run]

Rdiff - Sauvegarde différentielle de fichiers

Passons à la sauvegarde de fichiers de la machine qu'on appellera "frommachine" sur une autre machine linux que l'on appellera "destmachine".

frommachine   ----->   destmachine

Au préalable, il est nécessaire de préparer les deux machines :

  • sur destmachine

    apt install rdiff-backup

    rdiff-backup est le paquet qui permet de synchroniser des répertoires. Il doit être installé sur les 2 machines.

  • sur frommachine

On installe donc rdiff-backup.

apt install rdiff-backup

S'assurer que frommachine peut s'authentifier sur destmachine par ssh. Cette étape devrait être réalisée à la phase [conn] dans le paramétrage, mais on peut la faire manuellement avant. On va devoir ajouter une clé publique ssh. Supposons qu'elle n'existe pas encore, créons la :

# ssh-keygen

On laisse toutes les valeurs par défaut, et les deux clés vont être créées :

  • clé privée /root/.ssh/id_rsa
  • clé publique /root/.ssh/id_rsa.pub

Transmettons la clé publique pour l'autoriser à s'authentifier en user :

# ssh-copy-id -i /root/.ssh/id_rsa.pub user@destmachine

Finir l'installation de la clé en testant :

# ssh user@destmachine

Créons enfin l'action de sauvegarde par l'outil ninjahelper Sélectionner [new] puis [rdiff]. Suivez les quelques questions successives (répertoires source, destination, la connectivité), et c'est tout !

Mon fichier /etc/backups/90.rdiff :

when = everyday at 02:00
output_as_info = no
[source]
type = local
keep = 60D
include = /var/spool/cron/crontabs
include = /var/backups
include = /etc
include = /root
include = /home
include = /opt
include = /var/lib/dpkg/status*
include = /var/data
include = /var/www
include = /var/log
exclude = /tmp
[dest]
type = remote
directory = /data/backup/frommachine
host = destmachine
user = user

J'ai modifié l'heure de déclenchement pour démarrer après la sauvegarde de mysql, et donc inclure les backups mysql.

Tester la configuration en sélectionnant [test] dans l'action de sauvegarde créée.

Pour finir

Backupninja n'est un outil professionnel de la sauvegarde. Mais il fait le job. Il permet de planifier simplement des mysqldump et rdiff pour vous permettre de mettre en place une sauvegarde en moins de 10 minutes !

Qu'est-ce qu'une bonne sauvegarde ? une sauvegarde qui marche !

Je ne peux finir un article sur les sauvegardes sans vous dire qu'une sauvegarde qui n'a jamais été testée ne sert à rien. Testez-là !

Article précédent Article suivant