Les sauvegardes de bulbe.nos-oignons.net sont pilotées par backupninja.

Voir quelques notes d'installation.

backupninja

La configuration de backupninja se fait à travers /etc/backupninja.conf et surtout à travers les fichiers posés dans /etc/backup.d. Ces derniers seront traités en séquence afin de réaliser l'opération de sauvegarde.

L'idée est d'abord de collecter toutes les informations qui ne sont pas immédiatement accessibles (liste des paquets, description des partitions, dumps PostgreSQL, etc.) dans /var/backups.

Une fois cela fait, la dernière étape sauvegardera les différents dossiers à sauvegarder, dont /var/backups vers un serveur distant. Pour cela, on va utiliser obnam.

obnam

obnam envoie les données par SFTP sur un serveur distant. Le compte SSH s'y appelle nos-oignons. Une copie de la clé SSH qui permet d'accéder au serveur se trouve dans le trousseau keyringer.

Ces données sont chiffrées avant d'être posées sur le serveur par l'intermédiaire d'une clé GnuPG. La clé secrète est disponible dans keyringer.

Configuration

Afin de faciliter l'utilisation manuelle de la commande obnam, et notamment de ses commandes internes verify et restore, on crée un fichier de configuration /etc/obnam.conf dans lequel sont spécifiés les paramètres suivants :

repository   = sftp://user@server/path/to/backup
encrypt-with = 1A2B3C4D5E6F7890

Pour faciliter la lecture et l'analyse des opérations, on utilise un fichier de log dédié, et on organise sa rotation, toujours dans /etc/obnam.conf :

log       = /var/log/obnam/obnam.log
log-keep  = 4
log-level = info
log-max   = 5M
log-mode  = 0640

/etc/backup.d/90.obnam.sh

Le processus de sauvegarde par obnam est ici divisé en plusieurs commandes distinctes, de manière à réaliser l'ensemble d'un cycle sauvegarde, vérification de la sauvegarde et suppression des sauvegardes anciennes :

obnam force-lock
obnam backup /etc /home /root /srv /usr/local /var/backups /var/spool
obnam verify --root /var/backups/timestamp
obnam fsck --fsck-last-generation-only --fsck-ignore-chunks
obnam forget --keep=32d,128w

La première commande supprime un éventuel verrou qui aurait pu rester d'une sauvegarde précédente interrompue (perte de connexion réseau, timeout) ; la seconde effectue la sauvegarde chiffrée proprement dite ; la suivante opère une vérification sur un fichier témoin ; puis un test d'intégrité de la dernière sauvegarde est effectué ; enfin la dernière commande permet d'oublier les sauvegardes anciennes s'il y a lieu.

Voir quelques exemples d'utilisation