Note : cette documentation est destinée à la configuration de backupninja 0.5, donc applicable pour Debian « Sarge » 3.1. Pour configurer les version >= 0.7, disponible dans Debian « Etch » 4.0, lire Sauvegarde.
Présentation du système
Ce document présente l'installation de backupninja sous Debian Sarge. Ce système de sauvegarde est très évolutif et permet de sauvegarder une grande variété de données (LDAP, SQL, SVN, ...).
Backupninja fonctionne avec des handlers (globalement c'est un système de plugins). En voila la liste des principaux installés de base :
- rdiff : permet de faire des sauvegardes incrémentales locales ou distantes.
- sys : permet de sauvegarder la configuration système de la machine (listes des paquets Debian installés, partitions du disque dur, ...).
- mysql : permet de sauvegarder une base de donnée MySQL
- ldap, svn, trac, ...
Nous allons surtout voir comment le configurer pour faire des sauvegardes incrémentales locale et distantes.
Conventions
On va considérer les données suivantes :
- Dossier à sauvegarder : /etc/
- Destination de la sauvegarde locale : /backups/
- Destination de la sauvegarde distante : backup.miskin.fr:/backups/
- Label : daily (les sauvegardes seront donc placées dans /backups/daily/etc/)
Installation
Dans la Debian stable (« sarge ») on retrouve la version 0.5, alors que la unstable (« sid ») intègre la version 0.7. Cette dernière offre principalement un assistant qui permet de générer les fichiers de configuration.
Sur la machine cliente, il suffit d'installer backupninja et rdiff-backup (ainsi que leurs dépendances) :
root@localhost:~# apt-get install backupninja rdiff-backup
Si vous voulez placer vos sauvegarde sur une machine distante, il faudra y installer rdiff-backup :
root@sauvegarde:~# apt-get install rdiff-backup
Configuration de la sauvegarde
Note : cette documentation est destinée à la configuration de backupninja 0.5, donc applicable pour Debian « Sarge » 3.1. Pour configurer les version >= 0.7, disponible dans Debian « Etch » 4.0, lire Sauvegarde.
Même sans l'assistant, la configuration se faire relativement simplement. Il suffit de se baser sur les exemples fournis avec le paquet Debian (dans /usr/share/doc/backupninja/exemples/). Le paramètre label permet de spécifier le nom du répertoire où seront placées les sauvegardes (ici /backups/daily).
Les règles de sauvegardes doivent être placées dans /etc/backup.d/ et ne doivent être lisible que par root (droits 700). Les noms de fichiers commencent par un 0 seront ignorés.
Pour la sauvegarde locale, le fichier serait donc celui-ci :
# nom du fichier : /etc/backup.d/90_local.rdiff when = everyday at 12:30 [source] label = daily type = local keep = 15D include = /etc [dest] type = local directory = /backups/
Pour la sauvegarde distante :
# nom du fichier : /etc/backup.d/91_remote.rdiff when = everyday at 12:30 [source] label = daily type = local keep = 15D include = /etc [dest] type = remote directory = /backups/ host = backup.miskin.fr user = root
Dans le cas d'une sauvegarde distante, il est nécessaire de générer les clés SSH qui permettront de s'y connecter dans mot de passe :
root@localhost# ssh-keygen -t dsa root@localhost# ssh-copy-id -i /root/.ssh/id_dsa.pub root@sauvegarde
Restauration
Backupninja nécessite l'utilisation de rdiff-backup pour restaurer ses sauvegardes. Je vous conseille donc la lecture du document « rdiff-backup examples » ainsi que la page de manuel de rdiff-backup(1) pour en connaître plus sur cet outils.
Locale
Pour récupérer la dernière version d'une sauvegarde locale, c'est très simple :
root@localhost:~# rdiff-backup -r now /backups/daily/etc/passwd /tmp/passwd
Il est possible de restaurer une version plus ancienne du fichier :
root@localhost:~# rdiff-backup -r 2005-09-19 /backups/daily/etc/passwd /tmp/passwd
Distante
Pour restaurer des fichiers sauvegardés sur une machine distante, le mécanisme est le même :
root@localhost:~# rdiff-backup -r now \ sauvegarde.miskin.fr::/backups/daily/etc/passwd \ /tmp/passwd
A propos et nouveautés
Vous pouvez modifier et distribuer cette documentation sous les termes de la licence GPL. Elle est inspiré de documentations trouvée sur le web et de ma propre expérience de backupninja.
Versions
- 0.0-20070417 (split pour Debian Sarge/Etch)
- 0.0-20050919 (version originale)