Des sauvegardes, chaque jour, tu feras.

Tel pourrai être le leitmotiv de tout bon informaticien qui se respecte, en effet, personne n'est à l'abri d'un bug logiciel ou encore moins d'une défaillance physique et le constat est simple, plus son disque est gros et plus on a de chance de perdre des données...

An easy-to-use backup solution for making archives.

Voici la devise de Backup Manager, cet outils va vous permettre d'automatiser la sauvegarde de vos fichiers, bases mysql, bases subversion...très simplement.

Nous allons décrire ici l'installation sur Ubuntu ainsi que sa configuration qui est d'ailleurs d'une très grande simplicité !

Sommaire :


Informations préliminaires

Dans cet article, vous trouverez en rouge les versions à partir desquelles les informations courantes sont disponibles.
Notez que la version actuelle sous Dapper est la 0.6.

Installation

Vous pouvez récupérer la dernière version (0.7.4 au moment ou j'écrit ces lignes) sur la page de téléchargement de Backup Manager et l'installer manuellement en suivant les instructions d'installation fournis avec.

En ligne de commande, tapez simplement :

 $ sudo apt-get install backup-manager

L'installeur va ouvrir une interface vous demandant quelques informations pour configurer backup-manager, vous pouvez choisir de tout laisser par défaut, nous reviendront sur tous ces points ultérieurement :

Configuration

Backup Manager est entièrement configurable au travers d'un seul fichier de configuration : /etc/backup-manager.conf, éditez le de la manière suivante, dans un terminal :

 $ sudo vi /etc/backup-manager.conf

Ou, sous Gnome, avec, gedit :

 $ sudo gedit /etc/backup-manager.conf

Ce fichier de configuration est divisé en plusieurs sections, la première correspondant à la configuration général de Backup Manager, chaque clef étant dépendante des autres sections, ensuite, vous trouverez une section par type de méthode de sauvegarde (une section mysql, une section subversion...)

  1. Les sections de configuration

    La section « Repository » (dépôts)

    • export BM_REPOSITORY_ROOT="/var/archives"

      Cette clef sert pour le lieu d'archivage de vos données, vous spécifiez ici oû vous souhaitez que Backup Manager entrepose vos sauvegardes.

    • export BM_REPOSITORY_SECURE="true"
      export BM_REPOSITORY_USER="backup"
      export BM_REPOSITORY_GROUP="backup"

      Les clefs ci dessus sont spécifiques à la sécurité de vos sauvegardes, ainsi, il vous est possible de configurer si vos archives seront lisible par tous les utilisateurs de votre machines ou non et à quel utilisateur / groupe doivent appartenir vos archives, ainsi, dans l'exemple ci dessus, j'ai choisi de faire en sorte que mes archives ne soit lisible que par l'utilisateur backup et bien sûr, qu'elles lui appartiennent.

    La section « Archives »

    Cette section est consacrée aux archives, elle nous intéresse tout particulièrement :

    • export BM_ARCHIVE_TTL="5"

      La durée de vie de vos archives avant qu'elles ne soient supprimées afin d'être remplacées par des plus récentes.

    • export BM_ARCHIVE_PURGEDUPS="true"

      Créé des lien symboliques en lieu et place de fichiers de même taille.

    • export BM_ARCHIVE_PREFIX="$HOSTNAME"

      Vous pouvez choisir de préfixer vos fichier de sauvegardes de la manière suivante.

    • export BM_ARCHIVE_METHOD="tarball"

      Et enfin, cette clef définie la ou les méthodes de sauvegarde que vous choisissez parmis la liste suivante :

      Bien sûr, il est tout à fait possible d'en mettre plusieurs à la suite comme ci dessous :

      export BM_ARCHIVE_METHOD="tarball mysql svn"
  2. Les méthodes de sauvegarde

    Jusqu'à maintenant, nous nous sommes "contenté" de préparer Backup Manager, maintenant, nous allons nous attacher à configurer ce que nous voulons sauvegarder...
    Nous avons vu la clef BM_ARCHIVE_METHOD juste au dessus, nous avons vu qu'elle définissait les méthodes de sauvegarde que nous souhaitons mettre en oeuvre, et bien, nous allons maintenant, configurer, une par une, ces différentes méthodes.

    tarball

    Cette méthode, comme son nom l'indique pour ceux qui connaissent, consiste à créer des tarball, en fait, des archives qui contiendront les fichiers contenus dans le ou les répertoires que vous aurez spécifié.

    • export BM_TARBALL_NAMEFORMAT="long"

      Sur la clef ci dessus, vous spécifiez le format du nom du fichier qui sera généré (short ou long)

    • export BM_TARBALL_FILETYPE="bz2"

      Le type d'achives à générer, ainsi, il vous est possible de choisir entre tar, tar.gz, tar.bz2, zip, je vous conseillerai tar.bz2 qui génère des archives plus légère en taille.

    • export BM_TARBALL_DUMPSYMLINKS="false"

      Permet de déférencer les liens symboliques.

    • export BM_TARBALL_DIRECTORIES="/etc"

      Le ou les répertoires à sauvegarder (si plusieurs, séparez les simplement d'un espace). (Dans les versions supérieures à la 0.7.3, cette clef est remplacée par BM_TARBALL_TARGETS)

    • export BM_TARBALL_BLACKLIST="/var/archives"

      Ici, vous pouvez spécifier des répertoires à ne pas sauvegarder.

    tarball-incremental

    Si vous manquez de place, cette méthode est particulièrement recommandée, en effet, vous spécifiez tout d'abord une fréquence de création de l'archive complète, puis, chaque jour, entre 2 archives complètes, une archive sera créée mais cette dernière ne contiendra qu'uniquement les fichiers ajoutés ou modifiés depuis la dernière archive.

    • export BM_TARBALLINC_MASTERDATETYPE="weekly"

      Il s'agit de la fréquence de création des archives complètes (weekly ou monthly).

    • export BM_TARBALLINC_MASTERDATEVALUE="1"

      Si vous spécifiez dans la clef ci dessus (BM_TARBALLINC_MASTERDATETYPE) weekly, cette clef vous permettra de spécifier le jour de la semaine ou créer l'archive complète (1 à 7), si vous avez spécifiez monthly, vous spécifirez le jour du mois (1 à 31).

    mysql

    Il est possible d'archiver vos bases MySql par le biais de mysql-dump et de les compresser directement.

    • export BM_MYSQL_DATABASES="dotclear punbb test"

      Dans cette clef, vous spécifiez les bases à sauvegarder, pour sauvegarder toutes les bases, utilisez __ALL__ (clef par défaut).

    • export BM_MYSQL_ADMINLOGIN="root"
      export BM_MYSQL_ADMINPASS=""
      export BM_MYSQL_HOST="localhost"
      export BM_MYSQL_PORT="3306"

      Ici, pas d'explication particulière, il s'agit tout simplement de vos informations de connections relatives à MySql.

    • export BM_MYSQL_FILETYPE="bzip2"

      Le type d'archives à générer (gzip, bzip2, laissez vide pour avoir du sql brut).

    svn

    Cette méthode vous permettra de sauvegarder vos dépôts SubVersion par le biais de svnadmin (commande dump).

    • export BM_SVN_REPOSITORIES="/var/svn/hyla /var/svn/test"

      Les dépôts à sauvegarder.

    • export BM_SVN_COMPRESSWITH="bzip2"

      Le type d'archives à générer (gzip, bzip2, laissez vide pour avoir le xml brut).

    pipe

    Nous avons vu jusqu'à maintenant 4 méthodes de sauvegarde (tarball, tarball-incremental, mysql, svn), dans la plupart des cas, ces méthodes vous suffiront, dans le cas contraire, la méthode pipe (ou encore appelé méthode générique) va vous permettre de répondre à tout le reste.
    En effet, cette méthode vous permet de "déclencher" vos propres commandes, le résultat de votre commande sera le contenu de l'archive générée.

    • BM_PIPE_COMMAND[0]="ssh host -c \\"mysqldump -ufoo -pbar base\\""

      La commande à exécuter, ici, nous avons comme exemple, l'exécution d'un dump Mysql distant par SSH.

    • BM_PIPE_NAME[0]="base"

      Le nom de l'archive à générer.

    • BM_PIPE_FILETYPE[0]="sql"

      Le type de données renvoyé par la commande (txt, sql, dump...).

    • BM_PIPE_COMPRESS[0]="gzip"

      La compression à appliquer (gzip, bzip2, laissez vide pour aucune).

  3. Les méthodes d'envoi des archives

    Backup Manager vous permet d'envoyer vos archives sur différents serveur afin de délocaliser ses sauvegardes, ceci est extrèmement intéressant car en cas de problème local important, vous aurez ainsi toujours vos précieuses archives dans un autre lieu...

    global

    Ici, nous allons spécifier les méthodes d'upload à utiliser ainsi que les hôtes et leurs destinations par défaut.

    • export BM_UPLOAD_METHOD="ssh ftp s3"

      Les méthodes d'upload que vous voulez activer, dans l'exemple, j'ai activé ssh, ftp et s3, voici les options disponible :

    • export BM_UPLOAD_HOSTS="backup.example.com"

      Le serveur de backup par défaut (si les hôtes des autres méthodes d'envoi d'archives ne sont pas spécifié, backup manager se servira de ce dernier)

    • export BM_UPLOAD_DESTINATION="/var/backups"

      Répertoire de destination par défaut (idem, si les répertoires de destination des autres méthodes ne sont pas spécifié, la valeur de cette clef sera utilisée)

    • export BM_UPLOAD_TTL=""

      La durée de vie de vos archives uploadées (Version <= 0.7.3)

    ssh

    Grâce à la méthode ssh, vous allez pouvoir envoyer vos archives de façon sécurisé sur un serveur distant.

    • export BM_UPLOAD_SSH_USER="backups"

      L'utilisateur pour la connection SSH

    • export BM_UPLOAD_SSH_KEY="/var/backups/.ssh/id_dsa"

      La clef privée pour ouvrir la connection.

    • export BM_UPLOAD_SSH_HOSTS=""

      Le serveur distant

    • export BM_UPLOAD_SSH_PORT=""

      Le port

    • export BM_UPLOAD_SSH_DESTINATION=""

      Répertoire de destination

    • export BM_UPLOAD_SSH_PURGE="true"

      Effacer les archives déjà présentent sur le serveur avant l'envoi. (Version <= 0.7.4)

    • export BM_UPLOAD_SSH_TTL=""

      Si la clef précédente (BM_UPLOAD_SSH_PURGE) est à true, spécifiez ici la durée de vie des archives (par défaut, c'est le valeur de la clef BM_ARCHIVE_TTL) (Version <= 0.7.4)

    ssh-gpg

    Envoyer vos archives de manières sécurisés est intéressants mais il peut être encore plus intéressant de chiffrer en plus leur contenu, ainsi, vos archives seront envoyés et stockées de manière sécurisées.

    • export BM_UPLOAD_SSHGPG_RECIPIENT=""

      La clef publique GPG à utiliser pour le chiffrement.

    ftp

    Il vous est également possible d'envoyer vos archives par le biais de ftp.

    • export BM_UPLOAD_FTP_PASSIVE="true"
      export BM_UPLOAD_FTP_USER=""
      export BM_UPLOAD_FTP_PASSWORD=""
      export BM_UPLOAD_FTP_HOSTS=""

      Ces clefs sont, me semble t'il, assez explicite !

    • export BM_UPLOAD_FTP_PURGE="true"
      export BM_UPLOAD_FTP_TTL=""

      Ces clefs permettent de purger les archives précedemment envoyer sur le serveur au bout d'un certain temps, très utilie pour ne pas surcharger l'espace disque du serveur distant.

    • export BM_UPLOAD_FTP_DESTINATION=""

      La destination oû stocker les archives sur le serveur FTP.

    s3

    (Version <= 0.7.3)

    S3 (Simple Storage Service) est un service payant proposé par Amazon qui vous permet de disposer d'un espace de stockage.

    • export BM_UPLOAD_S3_DESTINATION=""
      export BM_UPLOAD_S3_ACCESS_KEY=""
      export BM_UPLOAD_S3_SECRET_KEY=""
      export BM_UPLOAD_S3_PURGE="false"

    rsync

    rsync est un puissant outil permettant de synchroniser des fichiers entre différentes machines.

    • export BM_UPLOAD_RSYNC_DIRECTORIES=""
      export BM_UPLOAD_RSYNC_DESTINATION=""
      export BM_UPLOAD_RSYNC_HOSTS=""
      export BM_UPLOAD_RSYNC_DUMPSYMLINKS="false"
  4. Burning

    Backup Manager vous permet aussi de graver sur différents supports comme les CDR, CDRW, DVD, et DVDRW (support des DVDRW pour les versions >= 0.7.2).

    • export BM_BURNING_METHOD="CDRW"

      Spécifiez ici le type de support sur lequel vous souhaitez graver vos archives

    • export BM_BURNING_CHKMD5="false"

      Positionnez à true, cette option vous permet d'être sûr que vos données ont été gravées correctement.

    • export BM_BURNING_DEVICE="/dev/hdb"

      Le "device" du graveur pour son montage

    • export BM_BURNING_DEVFORCED="/dev/hdb"

      Par défaut, vous pouvez forcer Backup Manager à utiliser tel device en passant outre la configuration par défaut de cdrecord (utilisé pour la gravure)

    • export BM_BURNING_MAXSIZE=""

      La taille maximale disponible sur le support de gravure.

  5. Configuration avancée

    Pour terminer, dans cette section, vous pourrez configurer quelques options.

    • export BM_LOGGER="true"

      Si à true, permet d'envoyer la sortie (erreurs...) dans syslog

    • export BM_PRE_BACKUP_COMMAND=""

      Spécifiez ici une commande à déclencher avant le début du travail de Backup Manager.

    • export BM_POST_BACKUP_COMMAND=""

      Et ici, une commande à déclencher une fois les archives créées.

Utilisation

Une fois installé, Backup Manager se charge de tout, en effet, selon la fréquence choisie pour la création des archives, il se lancera tout seul comme un grand au bon moment, vous pouvez aussi le lancer directement en ligne de commande (très utile pour tester l'ensemble) de la manière suivante :

 $ sudo backup-manager

Je vous conseille de le lancer avec l'option "-v" (verbose) afin de voir tous les messages relatifs à son travail ainsi :

 $ sudo backup-manager -v

Bien sûr, pour connaitre la liste des options disponibles, faites comme ci dessous :

 $ sudo backup-manager -h

En mode intéractif (c'est à dire, lancé depuis un terminal grâce aux commandes ci dessus), si vous avez configuré la gravure d'un média, vous constaterez que Backup Manager vous demande l'insertion du média en question, bien sûr, en mode automatique (non lancé en ligne de commande), le média sera gravé directement sans cette demande.

Conclusion

Voilà, si vous avez suivi attentivement jusqu'ici, vous avez pu vous rendre compte de la puissance de Backup Manager sans pour autant être une usine à gaz à configurer, que demander de mieux...

Alors, n'attendez pas de perdre vos données pour vous y mettre, il sera de toute façon trop tard...et avec cet outils, vous n'avez vraiment plus aucune excuse !