Table des matières

, ,

Backup-manager : Un utilitaire simple et accessible de gestion de sauvegarde

La perte de données est la chose qu'un utilisateur redoute le plus. Elle peut être due à plusieurs facteurs (mauvaise manipulation, disque dur hors service, malveillance, vol,…) et n'épargne personne. Ceux qui ont eu la désagréable surprise d'avoir un disque dur en "carafe" savent bien sûr à quel point les sauvegardes sont importantes. Dans cette amertume :-(, les bonnes résolutions du genre "je ferai des sauvegardes toutes les minutes !" apparaissent. Elles sont malheureusement du même genre que celles que l'on fait tous les jours de l'an ! ;-)

C'est pour cela qu'il existe des gestionnaires de sauvegardes qui effectuent ces opérations répétitives pour nous et surtout sans nous !

Dans le choix d'un gestionnaire de sauvegarde il faut connaître son besoin. Celui auquel répond (très bien) backup-manager est une sauvegarde de fichier locaux sous forme d'archives (méthode éprouvée) pouvant être exportée sur un serveur (via FTP, SSH, RSYNC,…) ou gravée sur CD/DVD. Il n'y a pas de procédure de restauration automatique, il suffit juste d'extraire les fichiers de l'archive pour pouvoir les utiliser. Backup-manager est donc efficace pour des ordinateurs "individuels" de particuliers et petites entreprises désireux d'une solution de sauvegarde simple, automatique et relativement sûre.

Loin d'avoir testé toutes les solutions existantes, backup-manager a retenu mon attention car :

Conseil

Si vous ne disposez pas du temps nécessaire à la configuration de Backup-Manager, reportez votre installation. Ça vous évitera la mésaventure suivante

Backup-manager s'étoffe de versions en versions dans cette version il permet dès à présent :

Pour un parc informatique important, il est préférable de mettre en place des systèmes du genre rsync (Serveur de sauvegarde, clients)

Installation

Installez le paquet backup-manager

Lors de l'installation, on vous demande quelques paramètres dont l'aide est fournie en français.

Lorsque l'installation prend fin, backup-manager est dès à présent paramétré pour pouvoir faire des sauvegardes. Elles seront journalières, complètes (tous les fichiers seront sauvés à chaque fois) et sous forme d'archives compressées *.tar.gz. Leur durée de vie sera de 5 jours (après quoi elles seront supprimés). Si cela est ce que vous cherchiez vous pouvez vous arrêter là !

Vous pouvez installer backup-manager-doc pour pouvoir consulter la documentation officielle complète en PDF et HTML dans /usr/share/doc/backup-manager-doc/. (en anglais)

Configuration

La configuration de backup-manager se fait via l'édition d'un fichier manuellement :

Ouvrez le fichier /etc/backup-manager.conf.

On va maintenant regarder ensemble la signification des divers paramètres

Utilisez le mode de coloration syntaxique de gedit (choisir Affichage→Mode de coloration→Scripts→sh) on y voit beaucoup mieux !

Répertoire et Sauvegarde

Répertoire et ses droits

Backup-manager stocke les archives (sauvegardes) dans un répertoire lequel peut être protégé par des droits d'accès.

BM_REPOSITORY_ROOT

Répertoire où toutes vos archives seront stockés.

Remarques : Il est plus sûr :

Exemple :

export BM_REPOSITORY_ROOT="/sauv"
BM_REPOSITORY_SECURE

Pour des raisons de sécurité le répertoire peut n'être accessible (lecture/écriture) que par une paire utilisateur/groupe.

Exemple :

export BM_REPOSITORY_SECURE="true"
export BM_REPOSITORY_USER="root"
export BM_REPOSITORY_GROUP="root"

Dans la version 0.7.5 (branche en développement) présente sur feisty il est possible de choisir les permissions du dossier BM_REPOSITORY_ROOT :

export BM_REPOSITORY_CHMOD="770"

ainsi que les permissions des différentes archives :

export BM_ARCHIVE_CHMOD="660"

Sauvegardes

BM_ARCHIVE_TTL

C'est la durée de vie (Time To Live) d'une archive avant qu'elle ne soit remplacée par une autre. Autrement dit si BM_ARCHIVE_TTL est à 5 vous aurez en permanence 5 archives ; la sixième sauvegarde remplacera la première, etc. Si vous avez programmé vos sauvegarde pour être quotidiennes, vous aurez donc au maximum 5 jours d'archives.

Exemple :

export BM_ARCHIVE_TTL="5"

Dans la version 0.7.5 présente sur Feisty il est possible de choisir de purger récursivement l'ensemble du contenu de BM_REPOSITORY_ROOT lorsqu'une archive expire :

export BM_REPOSITORY_RECURSIVEPURGE="true"
BM_ARCHIVE_PURGEDUPS

Si deux archives (sauvegardes) successives sont identiques, backup-manager peut créer un lien au lieu de recréer une archive. (gain de place)

Exemple :

export BM_ARCHIVE_PURGEDUPS="true"
BM_ARCHIVE_PREFIX

Donne un préfixe au nom de l'archive.

Exemple : ici le nom de l'ordinateur

export BM_ARCHIVE_PREFIX="$HOSTNAME"
BM_ARCHIVE_METHOD

La méthode permettant de créer les archives : (voir § suivant)

Exemple :

export BM_ARCHIVE_METHOD="tarball"

Note : Ici, l'on peut mettre plusieurs méthodes, et ainsi sauvegarder en tarball-incremental + sauvegarde mysql.

Exemple :

export BM_ARCHIVE_METHOD="tarball-incremental mysql"

Méthode de sauvegarde

Backup Manager offre à ses utilisateurs la possibilité de sauvegarder leur données sur des serveurs distant en utilisant :

Tarball

A chaque sauvegarde, elle liste les fichiers à sauvegarder dans un fichier texte et fabrique le fichier de sauvegarde. (vous pouvez faire vos propres scripts).

BM_TARBALL_NAMEFORMAT

Comment seront nommées les archives :

Exemple :

export BM_TARBALL_NAMEFORMAT="long"
BM_TARBALL_FILETYPE

C'est le type de compression désirée :

Exemple :

export BM_TARBALL_FILETYPE="tar.gz"

Est ce que backup-manager sauvegarde les répertoires pointés par des liens (raccourcis) ?

Attention : Peut considérablement augmenter la taille de votre archive. S'il y a une boucle de liens l'archive sera infinie! Soyez prudent !

Exemple :

export BM_TARBALL_DUMPSYMLINKS="false"
BM_TARBALL_DIRECTORIES

Pour faire une sauvegarde, il faut lui dire le chemin où se trouvent les choses à sauvegarder :

Note : Pour sauvegarder plusieurs dossiers séparer les chemins d'un espace

Exemple :

export BM_TARBALL_DIRECTORIES="/home/toto /home/tata"
Pour sauvegarder son compte "Ubuntu One" dans lequel il y a une espace, utiliser : "/home/tota/Ubuntu?One"
BM_TARBALL_BLACKLIST

Donner une liste noire qui comporte certains dossiers et fichiers à ne pas sauvegarder.

Note : Séparer les chemins/fichiers d'un espace.

Exemple :

export BM_TARBALL_BLACKLIST="/home/toto/temp/ *.mp3"
BM_TARBALL_SLICESIZE

Détermine la taille maximale des archives dar (si vous n'utilisez pas dar cette option n'est pas pour vous)

Exemple :

export BM_TARBALL_SLICESIZE="1000M"

Tarball incrémentale

Cette méthode est identique à tarball mais ne sauvegarde que les différences entre deux sauvegardes successives. Ici 2 sortes de sauvegarde sont mises en oeuvre :

  1. Sauvegardes complètes (full) : sauvegarde tous les fichiers comme une tarball à intervalle régulier.
  2. Sauvegardes différentielles : ce sont les sauvegardes entre 2 sauvegardes complètes. Elles contiennent juste la différence entre 2 sauvegardes successives.
BM_TARBALLINC_MASTERDATETYPE

Détermine la fréquence des sauvegardes complètes : (temps entre 2 sauvegardes complètes)

Exemple :

export BM_TARBALLINC_MASTERDATETYPE="weekly"
BM_TARBALLINC_MASTERDATEVALUE

Le jour des sauvegardes complètes :

Exemple :

export BM_TARBALLINC_MASTERDATEVALUE="1"

MySql

La méthode tarball sur les repertoires contenant les bases des données MySql ne permettra pas de récupérer des bases de données intègres. Backup-manager propose donc une méthode de sauvegarde basée sur mysqldump (fichiers texte au standard SQL)

Définir la liste des bases à sauvegarder

Les bases à sauvegarder sont notées dans la ligne "export BM_MYSQL_DATABASES=", séparées par un espace. Par exemple:

export BM_MYSQL_DATABASES="mysql mybase wordpress dotclear phpbb2"

Si on souhaite sauvegarder toutes les bases, on utilise:

export BM_MYSQL_DATABASES="__ALL__"
Les paramètres de connexion MySql

Il va falloir mettre en clair le mot de passe de connexion Mysql dans le fichier, D'autant que par défaut il propose root. (ça craint).

Limitons les négligences de sécurité: Tout d'abord sécurisons le fichier de configuration de Backup-manager:

sudo chown root:root /etc/backup-manager.conf
sudo chmod 640 /etc/backup-manager.conf

Créer un utilisateur MySql qui aura les droits minimums (tout lire, c'est énorme, mais déjà plus restrictif que les droits root)

Pour se connecter en root au client mysql:

mysql -u root -p

Dans le prompt Mysql (pensez à remplacer "secret" par votre mot de passe):

GRANT SHOW DATABASES,SHOW VIEW,SELECT,LOCK TABLES ON *.* TO 'backupmanager'@'localhost' IDENTIFIED BY 'secret';
exit;

Les paramètres de connexion aux bases dans le fichier /etc/backup-manager.conf

L'utilisateur Mysql

export BM_MYSQL_ADMINLOGIN="backupmanager"

Son mot de passe:

export BM_MYSQL_ADMINPASS="secret"
Compression des exports des bases

par défaut c'est au format bzip2

export BM_MYSQL_FILETYPE="bzip2"

Pensez à installer le paquet bzip2 si vous souhaitez compresser les bases dans ce format:

sudo apt-get install bzip2

Ou laissez la valeur vide, si vous ne souhaitez pas compresser les bases de données.

Autres

Les autres méthodes sont SVN, Generic method,… Ces méthodes ne sont pas (encore) expliquées dans ce wiki. N'hésitez pas à regarder la documentation officielle (très bien faite et en anglais de cuisine http://web.archive.org/web/20101028151801/http://wiki.backup-manager.org/index.php/Main_Page#Documentation (archive, le lien original ne semble plus fonctionner)

Méthode SVN

Dans le fichier /etc/backup-manager.conf, il y a une section pour la configuration de la méthode de sauvegarde SVN. Deux paramètres :

BM_SVN_REPOSITORIES

qui doit contenir la liste des dépôts à sauvegarder, et

BM_SVN_COMPRESSWITH

qui indique la méthode de compression de l'archive des dépôts sauvegardés.

A savoir que la méthode SVN utilise l'outil svnadmin dump pour sauvegarder les dépôts.

Astuce : vous pouvez utiliser le paramètre suivant pour sauvegarder tous vos dépôts sans en indiquer les noms :

export BM_SVN_REPOSITORIES="`find /var/svn/  -maxdepth 1  -mindepth 1`"

(attention les ` = Alt GR + 7, très importants car permettent d'interpréter la commande entre)

N'oubliez pas d'activer la méthode dans :

export BM_ARCHIVE_METHOD = ".... ... svn"

Méthode d'export des sauvegardes

Il est possible d'exporter ses sauvegardes par différents protocoles (SSH, FTP et RSYNC). Ces méthodes ne sont pas (encore) expliquées dans ce wiki. N'hésitez pas à regarder la documentation officielle (très bien faite et en anglais de cuisine)

Exportations sur média

Dans cette version, seul l'enregistrement sur CD/DVD est supporté. D'autres enregistrements sont à l'étude.

Gravure CD/DVD

BM_BURNING_METHOD

Quel support voulez vous utiliser :

Notes :

Remarque : Je déconseille la gravure de support en mode automatique si vous n'avez pas un graveur dédié pour cela (donc mettez none dans ce fichier de configuration). En effet, elle pose des problèmes en cas de présence d'un CD-RW présent lors de la sauvegarde. Vous pourrez toujours faire des sauvegardes manuelles sur support (voir § suivant).

Exemple :

export BM_BURNING_METHOD="none"   (recommandé)
ou
export BM_BURNING_METHOD="CDR"
BM_BURNING_CHKMD5

(à compléter) Permet de vérifier après gravure si les données du support correspondent aux archives.

Exemple :

export BM_BURNING_CHKMD5="true"
BM_BURNING_DEVICE

Donne le chemin du lecteur qui est aussi le chemin du graveur (nécessaire pour le CHecK MD5).

Exemple :

export BM_BURNING_DEVICE="/dev/cdrom"
BM_BURNING_DEVFORCED

Donne le chemin du graveur si aucun n'est renseigné, le graveur par défaut sera utilisé.

Exemple :

export BM_BURNING_DEVFORCED="/dev/cdrom"
BM_BURNING_MAXSIZE

Donne la capacité maximale des supports :

Exemple :

export BM_BURNING_MAXSIZE="700"

Options avancées

Les logs

(à compléter)

BM_LOGGER

Voulez-vous que les sorties de backup-manager soient envoyées vers le syslog ?

export BM_LOGGER="true"
BM_LOGGER_FACILITY

(à compléter)

export BM_LOGGER_FACILITY="user"

Les commandes extérieures

Un aspect très pratique de backup-manager est de pouvoir exécuter des commandes avant et après la sauvegarde.

Commande pré

BM_PRE_BACKUP_COMMAND

Ici vous renseignez la commande à effectuer avant une sauvegarde Astuce :

Il peut être intéressant d'exécuter un petit script qui :

export BM_PRE_BACKUP_COMMAND="sh /home/toto/script_de_pre_sauv.sh"

Commande post

BM_POST_BACKUP_COMMAND

Ici vous renseignez la commande à effectuer après une sauvegarde.

export BM_POST_BACKUP_COMMAND="sh /home/toto/script_de_post_sauv.sh"

Utilisation

Commandes

Backup-manager peut uniquement être exécuté en tant que super-utilisateur. Vous pouvez obtenir de l'aide sur backup-manager grâce au classique man :

man backup-manager

Ou sous forme synthétique :

sudo backup-manager -h

Je ne traiterai pas de ces commandes car elles sont bien renseignées (et dans la langue de Molière !).

Quelques commandes utiles

Faire une sauvegarde manuelle

sudo backup-manager

Utiliser un autre fichier de configuration :

sudo backup-manager -c /etc/backup-manager/backup_de_mon_home.conf

Graver toutes les archives du 6 novembre 2006 :

sudo backup-manager --burn 20061106

Restauration des sauvegardes

Un pépin n'arrivant jamais au bon moment, le mieux est de s'assurer que les sauvegardes fonctionnent bien comme elles ont été prévues et que leurs restaurations soient facilitées. Backup-manager ne s'occupant que de créer des archives, ne permet aucune restauration. Il vous est donc primordial de connaître les outils de gestions d'archives. Si vos archives sont en :

Restaurer un backup incrémentiel (méthode "tarball-incremental")
tar -xvf backup_complet.tar
tar -xvf backup_incr1.tar --listed-incremental=backup.incremental-list.txt

Vous pouvez aussi utiliser des outils graphiques tel que file roller pour les archives ci-dessus.

Automatisation avec CRON

Par défaut backup-manager est déjà automatisé avec cron et s'exécute tous les jours. Cette automatisation est faite grâce au script shell : "/etc/cron.daily/backup-manager"

Avec la version 0.7.9.3, la tâche cron n'est plus installée, il faut donc ajouter un fichier backup-manager dans les tâches cron journalières (/etc/cron.daily) avec le contenu suivant:
#!/bin/sh
# cron script for backup-manager
test -x /usr/sbin/backup-manager || exit 0
/usr/sbin/backup-manager

Il faut enfin la rendre éxécutable

sudo chmod 751 /etc/cron.daily/backup-manager

Exemple de sauvegarde multiple: Partons du principe que vous voulez :

Il faut donc faire deux fichiers de configuration (sur la base de backup-manager.conf) :

Créer deux scripts qui lancent backup-manager dans :

#!/bin/sh
/usr/sbin/backup-manager -c /chemin_du_fichier_de_conf/backup-manager_home.conf
#!/bin/sh
/usr/sbin/backup-manager -c /chemin_du_fichier_de_conf/backup-manager_musique.conf
Ne faites pas confiance aveuglément à un programme de sauvegarde et surtout à sa configuration ! Une fois que vous l'avez mise au point testez-la. Par exemple : essayez de retrouver un fichier supprimé depuis 3 jours, ce n'est pas le jour où vous aurez besoin de ces sauvegardes qu'il va vous falloir regarder comment on les récupère ! (douloureux souvenir quand tu nous tiens ;-)) Veillez aussi à éviter de donner comme cible de sauvegarde un répertoire qui pourrait remplir le disque dur de démarrage, ce qui bloquerait un futur démarrage de session.

A noter que parfois les fichiers de type backup.incremental-list.txt ou *.incremental.bin peuvent ne pas être envoyé par ftp. Une solution ici : http://forum.ovh.com/showthread.php?p=542964.