Sauvegardes à la maison, le retour

October 31, 2011 by nono
Catégories geekeries - Mots-clés Makefile rsnapshot sauvegardes

J'ai déjà expliqué mon utilisation de BackupPC à la maison. À l'usage, c'est assez bien adapté à la sauvegarde en local de petites quantités de données externes, typiquement c'est très bien pour sauvegarder mes sites web sur mon PC. Par contre, dès qu'il s'agit de sauvegarder des données sur un disque externe (typiquement mes photos, qui ne tiennent pas sur les disques durs de mes serveurs), ce n'est pas l'outil adéquat.

Dans l'article mentionné plus haut, j'évoquais rapidement mon utilisation de rdiff-backup pour  la sauvegarde de mon PC principal. Depuis j'ai découvert et commencé à utiliser l'excellentissime rsnapshot, qui a l'avantage de rendre la restauration des données triviale (en gros, une sauvegarde est matérialisée par un répertoire sur le disque, et les fichiers s'y trouvent en clair, il suffit de les relire). Il restait juste à l'adapter à l'utilisation sur un disque dur externe, qui peut changer de point de montage (en pratique, si je le monte en tant que root, c'est /mnt/backups, si je le monte en tant que moi, c'est /media/quelquechose).

La config adaptée tient en deux fichiers. Pour commencer un rsnapshot.conf situé à la racine du disque externe (ou dans le sous-répertoire consacré aux sauvegardes, s'il ne s'agit pas du disque entier). Voici l'essentiel de son contenu :

config_version  1.2

include_conf    ./rsnapshot-root

no_create_root  1

cmd_cp          /bin/cp
cmd_rm          /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du          /usr/bin/du

interval        backup  60

verbose         2
loglevel        3
logfile /var/log/rsnapshot
lockfile        /var/run/rsnapshot.pid

# LOCALHOST
backup  /root/          carrosse/
backup  /home/          carrosse/
backup  /etc/           carrosse/

La partie intéressante est bien sûr la ligne include_conf. Il contient quoi, donc, ce fichier rsnapshot-root ? Eh bien il est généré, bien entendu, par le deuxième fichier dont je parlais plut haut, à savoir un Makefile (situé dans le même répertoire que rsnapshot.conf). Le contenu du Makefile, donc :

backup: config
        rsnapshot -c ./rsnapshot.conf -V backup

config:
        echo '# Fichier genere, ne pas editer. -- Arnaud' > ./rsnapshot-root
        echo -e snapshot_root\\t$$(pwd)/RSNAPSHOT/ >> ./rsnapshot-root

Et voilà, c'est prêt. La sauvegarde se lance en tapant bêtement make dans le bon répertoire. C'est pas beau ça ?