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 :
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)
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à !
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
Backup-manager stocke les archives (sauvegardes) dans un répertoire lequel peut être protégé par des droits d'accès.
Répertoire où toutes vos archives seront stockés.
Remarques : Il est plus sûr :
Exemple :
export BM_REPOSITORY_ROOT="/sauv"
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"
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"
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"
Donne un préfixe au nom de l'archive.
Exemple : ici le nom de l'ordinateur
export BM_ARCHIVE_PREFIX="$HOSTNAME"
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"
Backup Manager offre à ses utilisateurs la possibilité de sauvegarder leur données sur des serveurs distant en utilisant :
A chaque sauvegarde, elle liste les fichiers à sauvegarder dans un fichier texte et fabrique le fichier de sauvegarde. (vous pouvez faire vos propres scripts).
Comment seront nommées les archives :
Exemple :
export BM_TARBALL_NAMEFORMAT="long"
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"
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"
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"
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"
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 :
Détermine la fréquence des sauvegardes complètes : (temps entre 2 sauvegardes complètes)
Exemple :
export BM_TARBALLINC_MASTERDATETYPE="weekly"
Le jour des sauvegardes complètes :
Exemple :
export BM_TARBALLINC_MASTERDATEVALUE="1"
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)
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__"
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"
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.
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)
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"
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)
Dans cette version, seul l'enregistrement sur CD/DVD est supporté. D'autres enregistrements sont à l'étude.
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"
(à compléter) Permet de vérifier après gravure si les données du support correspondent aux archives.
Exemple :
export BM_BURNING_CHKMD5="true"
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"
Donne le chemin du graveur si aucun n'est renseigné, le graveur par défaut sera utilisé.
Exemple :
export BM_BURNING_DEVFORCED="/dev/cdrom"
Donne la capacité maximale des supports :
Exemple :
export BM_BURNING_MAXSIZE="700"
(à compléter)
Voulez-vous que les sorties de backup-manager soient envoyées vers le syslog ?
export BM_LOGGER="true"
(à compléter)
export BM_LOGGER_FACILITY="user"
Un aspect très pratique de backup-manager est de pouvoir exécuter des commandes avant et après la sauvegarde.
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"
Ici vous renseignez la commande à effectuer après une sauvegarde.
export BM_POST_BACKUP_COMMAND="sh /home/toto/script_de_post_sauv.sh"
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 !).
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
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 :
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.
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"
#!/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
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.