Un remplacant plus souple et efficace que rsync, pour les backups. C'est incremental, et permet la restoration selon une date…
Liens:
# aptitude install rdiff-backup
![]() rdiff-backup fonctionne en “remote”, il faut les même versions |
$ rdiff-backup <SOURCE> <DESTINATION>
<SOURCE> | Ce qu'on veut sauvegarder: répertoire source local OU répertoire source distant |
<DESTINATION> | Où l'on veut placer la sauvegarde: répertoire destination local OU répertoire de destination distant |
rdiff-backup
doit être installé sur la <DESTINATION>, bien sur.
Exemple:
Local Local:
$ rdiff-backup ~/devel/youIncube-project ~/backup/devel/youIncube-project
Local Remote (via ssh):
$ rdiff-backup ~/devel/youIncube-project backups.nasa.gov::/home/tj/backup/devel/youIncube-project
Remote Local :
$ rdiff-backup thierry-jaouen.fr::/home/thierry/devel/youIncube-project ~/backup/devel/youIncube-project
Remote Remote:
$ rdiff-backup thierry-jaouen.fr::/home/thierry/devel/youIncube-project backups.nasa.gov::/home/tj/backup/devel/youIncube-project
En ajoutant, par exemple, -v5
, on augmente la verbosité.
Les données sont plus ou moins directement accessible dans le répertoire de destination… parce que c'est d'abord un mirroir !
Il y a juste un répertoire rdiff-backup-data
supplémentaire.
Comme c'est un “mirroir”, on peut restore le dernier état assez simplement, par copie.
Mais on sera plus avisé de faire:
$ rdiff-backup --restore-as-of now backups.nasa.gov::/home/tj/backup/devel/youIncube-project icila
Ce qui “restore” le dernier état (current/now), dans le répertoire icila
(en le créant tout seul)
Equivalence:
–restore-as-of now | -r now |
Pour restorer la sauvegarde d'il y a …
10 jours | -r 10D |
35 heures | -r 35H |
un jour qui n'existe pas | -r 2009-09-31 |
2 semaines | -r 2W |
10 backups | -r 10B |
maintenant | now ou 0B |
Lorsqu'on devra ecraser certains fichiers pour les restorer, il faudra utiliser: –force
Il suffit de spécifier le sous-repertoire a partir de la source…
$ rdiff-backup --restore-as-of now backups.nasa.gov::/home/tj/backup/devel/youIncube-project/c_devel/include icila
Pour faire de la place, on peut demander a ce que les fichiers les plus anciens , qui ont été effacé, soient supprimés.
Exemple, effacer les fichiers (inutiles car effacés) vieux de 2 semaines:
$ rdiff-backup --remove-older-than 2W ~/backups/devel/youIncube-project
$ rdiff-backup --exclude /proc / /mnt/backup
On exclut /proc
, et c'est bien.
On devrait aussi exclure /mnt/backup
(sinon, on a une boucle infinie), mais rdiff-backup
detecte ce genre de gaffe.
L'ordre a de l'importance. On peut Include
puis Exclude
, comme cela:
$ rdiff-backup --include /tmp/journal-fresh --exclude /tmp --exclude /proc / /mnt/backup
Et donc, /tmp/journal-fresh
sera sauvé, mais pas le reste de /tmp
.
Liste des “increments” (backup?):
$ rdiff-backup --list-increments /mnt/backup
Liste des fichiers qui ont changés depuis…
$ rdiff-backup --list-changed-since 10D /mnt/backup
Liste des fichiers modifiers (depuis le dernier backup):
$ rdiff-backup --compare source backup