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 :

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 :

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

Sources