Utilisation De Borg Backup

BorgBackup est un outils de sauvegarde dédupliqué. Donc il gère automatiquement les sauvegarde en s’arrangeant pour ne stocker que les différences entre deux état.

On réalise une 1er sauvegarde qui servira de base. Les autres venant s’ajouter au dépot. La 1er sauvegarde est donc plus lente que les autres puisque quelle est complète.

En premier lieu, on va initialiser un dépot qui receverra les sauvegardes. Puis on va y réaliser nos sauvegardes.

Installation

pip install borgbackup

si on souhaite pouvoir monter ses sauvegardes comme un FS

pip install borgbackup[fuse]

Initialisation du dépot

borg init

Création d’une sauvegarde

On peut comme souvent avec ce genre d’outil, définir une liste d’exclusion, par répertoire, fichier, type d’extension ou motif. On sélectionne les répertoires que l’on souhaite sauvegarder et voila…

L’outil dispose de parametre spécifique afin de personnalisé les nom des sauvegarde avec des informations spécifique comme le hostname ou la date.

source

borg create /mon/depot::'mon_texte_{now}' /mon/chemin/a/sauvegarder

Lister les versions disponible

borg list /mon/depot

Monter une sauvegarde comme un file system

On peut utiliser une sauvegarde et la monter comme un FS.

A ce moment, les fichiers sont disponible en lecture seul à la date et à l’heure fixé.

source

borg mount /path/to/repo::root-2016-02-15 /tmp/mymountpoint

Purge des sauvegardes

La purge permet de conserver une taille de dépot résonnable.

Si on sauvegarde toute les heures, il peut être bon de ne garder qu’une sauvegarde par jour au dela de 24h…

source

# Keep 7 end of day and 4 additional end of week archives.
# Do a dry-run without actually deleting anything.
$ borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 /path/to/repo

Sauvegarder sur un dépot distant via ssh

borg create /mon/depot::'mon_texte_{now}' host_dans_.ssh_config:/mon/chemin/a/sauvegarder

Le host cible doit être parametré dans $HOME/.ssh/config pour être atteind.

host host_dans_.ssh_config
  hostname machine
  port bidule
  ...

Sécurisation de l’échange

Coté serveur, on peut faire un peu de configuration pour limiter l’utilisation du compte de sauvegarde.

Coté client on a établie une mécanique de connexion par clef. Cette connexion permet l’automatisation de la connexion.

Mais coté serveur, on ne veut pas donner un shell à l’utilisateur.

dans le fichier $HOME/.ssh/authorized_keys :

command="borg serve --restrict-to-path /mon/chemin/a/sauvegarder",restrict ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABsldksmdlkfjlsdkjflskdjflksjdlkjsdjflskdjfl yo_man@titan

ce qui revien a ajouter la commande devant la clef.

command="borg serve --restrict-to-path /mon/chemin/a/sauvegarder",restrict la_clef

Restaurer un fichier spécifique

source

$ borg extract /path/to/repo::my-index home/USERNAME/directory/file
  • Notez que le fichier est ciblé sans indiqué la racine.
  • Le fichier extrait, le sera dans le répertoire courant sous le chemin ./home/USERNAME/directory/file