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.
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é.
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…
# 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
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