rdiff-backup

rdiff-backup est un logiciel de backup.
Il permet faire une copie miroir d’un répertoire vers un autre (tout comme rsync).

* En plus, il conserve les anciennes versions des fichiers, ce qui vous permet de restaurer un fichier tel qu’il était à une date antérieure, ou de récupérer les fichiers effacés.
* il permet de faire un backup vers/depuis un répertoire local ou vers/depuis un serveur ssh.
* il n’enregistre/transmet que les parties modifiées des fichiers. Il est donc très rapide et économe en espace disque et bande passante.
* La syntaxe est simple et il est possible de filtrer les fichiers à sauvegarder.
* il permet également de faire des backups vers des systèmes de fichiers qui ne supportent pas la gestion des droits Unix/Linux.

Le backup le plus récent est une copie-miroir du répertoire source.
Les backups des versions précédentes ne contiennent que les parties modifiées des fichiers par rapport au backup suivant.


Installation sous Debian: sudo aptitude install rdiff-backup

Faire un backup
rdiff-backup /source /backups
* Le backup de la toute dernière version de vos fichiers est disponible dans /backups.
* Le répertoire /backups/rdiff-backup-data contient les différences avec les anciennes versions des fichiers.

Lister les backups disponibles
rdiff-backup -l /backups
(utilisez –list-increment-sizes pour voir la place occupée par chaque backup)
Eliminer les anciens backups

Eliminer tous les backups vieux de plus de 7 jours:
rdiff-backup –remove-older-than 7D –force /backups

Restaurer : Pour récupérer votre fichier /source/monfichier.txt tel qu’il était il y a 3 jours (et on le met dans /source/ancien.txt):
rdiff-backup -r 3D /backups/monfichier.txt /source/ancien.txt
( -r pour “restore” ; 3D = 3 Days = 3 jours. On peut aussi spécifier en heures, minutes, ou même une date précise. Voir la documentation.)

Exemple d’automatisation

Voici un exemple: Nous allons mettre en place un backup quotidien des répertoires personnels (/home) vers /var/rdiff.backups/home en gardant 30 jours d’historique des fichiers. Nous excluons les fichiers de taille supérieure à 50 Mo.

Placez-vous en tant que root, et créez le fichier /etc/cron.daily/rdiff_backup_home contenant:

#!/bin/bash
test -x /usr/bin/rdiff-backup || exit 0
logger “rdiff_backup_home: Suppression des anciens backups (>30 jours)”
/usr/bin/rdiff-backup –remove-older-than 30D –force /var/rdiff.backups/home
logger “rdiff_backup_home: Backup du répertoire /home (fichiers /usr/bin/rdiff-backup –max-file-size 50000000 /home /var/rdiff.backups/home
logger “rdiff_backup_home: Fin du backup.”

Rendez ce fichier exécutable: chmod 755 rdiff_backup_home

A partir de maintenant, les répertoires /home seront sauvegardés quotidiennement.
rdiff-backup permettra de récupérer les anciennes versions des fichiers jusqu’à 30 jours en arrière tout en minimisant l’espace disque utilisé.

* Pour forcer un backup, tapez: sudo /etc/cron.daily/rdiff_backup_home
* Pour lister les backups effectués, tapez: sudo rdiff-backup -l /var/rdiff.backups/home
* Pour restaurer un fichier, exemple: sudo rdiff-backup -r 3D /var/rdiff.backups/home/toto/monfichier.txt /home/toto/ancien.txt

vous pourrez voir si le backup a bien tourné en regardant dans /var/log/syslog. Tapez: grep rdiff /var/log/syslog