Sauvegardes à la maison, le retour
October 31, 2011 by nonoCaté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 ?