Outils pour utilisateurs

Outils du site


rdiff-backup

Ceci est une ancienne révision du document !


rdiff-backup

Je suis finalement passé à BorgBackup, plus efficace (compression, déduplication). Je laisse tout de même la

rdiff-backup est un logiciel de sauvegarde. Dans sa fonction de base, il fait la même chose que rsync: Recopier un répertoire source vers une destination, à l'identique. Quand on le relance, il transfère uniquement les fichiers modifiés (comme rsync).

Mais il fait un peu plus: Il conserve les versions précédentes des fichiers en faisant un diff inverse (d'où le "rdiff") compressé.

Avantages:

  • Le répertoire de destination contient une copie exacte de la dernière version du répertoire source (comme rsync).
  • On peut accéder aux versions précédentes des fichiers, ou aux fichiers effacés.
  • Avec les rdiff, ces anciennes versions occupent le moins de place possible.

Je m'en sert pour faire des backups:

  • de mon site web vers ma machine locale (à travers ssh).
  • de ma machine locale vers un disque externe (par USB).

Packages à installer

  • rdiff-backup : l'outils lui-même.
  • rdiff-backup-fs : système de fichiers en espace utilisateur qui permet de voir les anciennes versions des répertoires.

Mémo des commandes principales

Si on suppose qu'on veut sauvegarder /source vers /destination:

  • Faire un backup:
    rdiff-backup /source /destination
    • Ajoutez l'option -v5 pour voir la progression fichier par fichier.
    • À relancer autant de fois que vous le voulez:
      • Le premier lancement fera une copie intégrale des données.
      • Les lancements suivants ne transfèreront que les données modifiées.
  • Lister les backups:
    rdiff-backup -l /destination
  • Lister la taille des backups:
    rdiff-backup --list-increment-sizes /destination
  • Retirer tous les backups plus vieux de 7 jours:
    rdiff-backup --remove-older-than 7D --force /destination

Utilisation par ssh

  • Syntaxe générale:
    rdiff-backup utilisateur@serveurdistant::répertoiredistant répertoirelocal
    • Bien sûr, il faut également que rdiff-backup soit installé sur le serveur distant.
  • Pour utiliser un serveur ssh distant sur un port non-standard, créer le fichier ~/.ssh/config:
    Host toto.com
    Port 55555
  • Exemple: Backup distant vers local (avec verbosité suffisante pour afficher le fichier en cours de traitement):
    #!/bin/bash
    # Ces trois première lignes servent à se placer dans le répertoire du script, quand je le lance par le gestionnaire de fichiers.
    SCRIPT=$(readlink -f "$0")
    DIR=$(dirname "$SCRIPT")
    cd "$DIR"
    rdiff-backup -v5 monutilisateur@sebsauvage.net::/home/www/wiki ./wiki
  • Note: Mon utilisation de rdiff-backup étant ponctuelle et à la demande, je ne me suis pas intéressé l'utilisation des certificats ssh pour la connexion sans mot de passe.

Consulter les backups

On peut utiliser rdiff-backup –restore-as-of 3D … pour restaurer un fichier ou un répertoire tel qu'il était il y a 3 jours, mais il y a une solution plus simple: Utiliser rdiff-backup-fs.

C'est très simple:

mkdir archive
rdiff-backup-fs archive /destination

Vos sauvegardes située dans /destination seront visibles dans le répertoire archive:

2017-12-07T08:07:57
2017-12-07T08:37:19
2017-12-07T08:55:39
2017-12-07T09:02:04
2017-12-07T13:54:05

Chaque répertoire correspond à une date de sauvegarde. Ces répertoires sont des fenêtres sur le passé: Vous pouvez voir les répertoires et fichiers tels qu'ils étaient à ces différentes dates. Super pratique !

Pour démonter ce répertoire:

fusermount -u archive

On peut difficilement faire plus simple.

Interfaces graphiques

Différentes interfaces graphique pour rdiff-backup. Certains de ces outils sont conçus pour l'utilisateur final, d'autres pour l'admin (ou les deux). Certains de ces outils ne sont pas conçus pour faire des backups distants.

Liens à explorer

Et pourquoi pas... ?

Et pourquoi pas Timeshift, rsnapshot, duplicity, [outils de backup votre choix] ?

  • Parceque rdiff-backup est plus économe en espace disque. Beaucoup d'outils de backup sauvegardent la totalité d'un fichier quand ce dernier est modifié. rdiff-backup ne sauvegarde que la partie modifiée du fichier.
  • Parce que le répertoire de backup est une simple copie du répertoire source. Je peux relire mon backup sans le logiciel de backup lui-même.

Suite à des suggestions, j'irai aussi jeter un coup d’œil à borg-backup et bup qui ont l'air d'être également très efficaces, et - tout comme rdiff-backup - les backups sont montables en fuse (système de fichiers), ce qui est très pratique.


BorgBackup

Je suis finalement passé à BorgBackup

Avantages:

  • Il fait également des sauvegarde incrémentales.
  • Compression (LZ4 très rapide par défaut, mais peu aussi faire gzip ou lzma)
  • Chiffrement (optionnel)
  • Dé-duplication (ce que rdiff-backup ne fait pas entre fichiers)
  • Les backups peuvent être interrompus et repris.
  • Tout comme rdiff-backup, les backups sont accessible en FUSE.
  • Créer un repo Borg:
    borg init /destination
    • Par défaut, c'est chiffré avec mot de passe. Pour faire sans chiffrement, faire:
      borg init --encryption=none /destination
  • Faire un backup:
    borg create /destination::{now} /source
  • Lister les backups:
    borg list /destination
  • Vérifier l'intégrité des backups:
    borg check /destination
  • Accéder aux backups:
    mkdir archive
    borg mount /destination archive
    • Chaque backup est accessible comme un répertoire.
      • Note: Si vous avez beaucoup de fichiers, quand vous allez entrer dans le répertoire d'un backup précis, un simple ls risque de prendre plusieurs minutes. C'est tout à fait normal. Ne soyez pas surpris.
    • Puis démonter par:
      borg umount archive
  • Supprimer les anciens backups:
    • On va garder 1 backup par jour sur les 7 derniers jours, et 1 backup par semaine sur les 4 dernières semaines et 1 backup par mois sur les 6 derniers mois.
      borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /destination
  • Exemples:
    • Sauvegarder local vers local (je sauvegarde vers une partition VeraCrypt stockée sur un disque dur externe):
      nice -n 19 ionice -c 3 borg create -v --stats --progress --exclude-from="/media/veracrypt2/excludes-backup-asus.txt" /media/veracrypt2/backupasus-borg::{now} /
    • Sauvegarder un site distant vers local:
      • Comme borg est trop lent à récupérer les fichiers distants, je fais d'abord un rsync vers un répertoire local (très rapide), puis un borg du répertoire local pour garder l'historique.
        rsync --progress --delete -az user@sebsauvage.net:/home/www/ /backup/site/
        borg create -v --stats --ignore-inode --progress /backup/site-borg/::{now} /backup/site/

Liens

rdiff-backup.1512980973.txt.gz · Dernière modification : 2017/12/11 08:29 de sebsauvage