rdiff-backup: Des backups efficaces et incrémentaux

Décembre 2016


Caractéristiques de 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 ou une simple commande cp).
  • 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.
  • rdiff-backup permet de faire un backup vers/depuis un répertoire local ou vers/depuis un serveur ssh.
  • rdiff-backup 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.
  • rdiff-backup 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.

Voici un petit résumé rapide des principales commandes:

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


Par exemple, éliminer tous les backups vieux de plus de 7 jours:
rdiff-backup --remove-older-than 7D --force /backups

Restaurer


Par exemple 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.)

Autres options


Il existe de nombreuses autres options pour filtrer les fichiers (par nom, chemin, taille...), pour restaurer des répertoires entier, à des dates précises, faire des backups à travers ssh, etc.
Faites un man rdiff-backup pour lister les options.

Certains logiciels utilisent rdiff-backup pour effectuer les backups (backupninja, slbackup...), mais rien ne vous empêche de mettre simplement votre commande rdiff-backup dans le crontab pour l'automatiser, ou encore de le mettre dans un script shell pour le lancer en deux clics.

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 <50Mo uniquement)."
/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

Et c'est tout !

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

Voir aussi


Autres logiciels de backup

  • rsnapshot permet également de faire des backups incrémentaux, mais il n'utilise pas rdiff et la moindre modification d'un fichier lui fait copier le fichier en entier. rsnapshop consomme donc nettement plus d'espace disque que rdiff-backup. rsnapshot exige également que le système de fichiers sur lequel est fait le backup support les droits Posix. (Ce n'est pas nécessaire avec rdiff-backup).

A voir également :

Ce document intitulé «  rdiff-backup: Des backups efficaces et incrémentaux  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.