Sauvegarder ses données avec BorgBackup
BorgBackup

Sauvegarder ses données avec BorgBackup

Table des matières

BorgBackup (abréviation : Borg) est un programme de sauvegarde avec déduplication. En option, il prend en charge la compression et le cryptage authentifié.

L'objectif principal de Borg est de fournir un moyen efficace et sécurisé de sauvegarder les données. La technique de déduplication des données utilisée rend Borg adapté aux sauvegardes quotidiennes puisque seules les modifications sont stockées. La technique de chiffrement authentifié la rend adaptée aux sauvegardes vers des cibles non totalement fiables.

⚡Caractéristiques

  • Stockage efficace des sauvegardes.
  • Cryptage sécurisé et authentifié.
  • Compression : lz4, zstd, zlib, lzma ou aucune.
  • Sauvegardes montables avec FUSE.
  • Installation facile sur plusieurs plateformes : Linux, macOS, BSD, ...
  • Logiciel gratuit (licence BSD).
  • Soutenu par une communauté open source vaste et active.

Si vous avez suivi les deux tutoriels:

Préparer son disque sous Debian
Voyons comment initialiser un disque, supprimer une partition, créer une partition et formater une partition en ext4.

&

Monter un disque dur sous Linux
Comment monter un disque sous Linux et faire en sorte qu’il soit monté automatiquement au démarrage du serveur?

Vous avez donc un disque prêt à l'emploi et totalement vierge. Dans mon exemple j'ai choisi de monter le disque dans /mnt/backup.

Ce tutoriel a pour but d'inciter à faire des sauvegardes de ses données, il sera, je l'espère, le plus simple possible car avec ce genre de logiciel, il y a toujours moyen d'aller très loin dans les paramètres. Vous pouvez toujours creuser une fois que vous avez la main.

L'essentiel est de se mettre à sauver ses données.

Sachez également que ce sont des sauvegardes incrémentielles, c'est à dire qui ne copie que les données modifiées depuis la dernière sauvegarde.


Installer BorgBackup

La première chose à faire est d'installer BorgBackup sur votre serveur:

sudo apt install borgbackup

Création du dépôt

Non chiffré

Grâce à cette commande, je vais créer un dépôt non chiffré que je vais nommer sombrement, borg où BorgBackup pourra stocker vos sauvegardes:

borg init --encryption=none /mnt/backup/borg

Ce qui donne:

Cette méthode comporte un avantage: vous ne risquez pas d'oublier le mot de passe du chiffrement. Il n'y en a pas. Mais vos données seront en clair. Ce n'est pas forcément l'idéal.

Chiffré

Vu que j'ai déjà créé un dépôt non chiffré, je vais nommer mon dépôt chiffré, borg2:

borg init --encryption=repokey /mnt/backup/borg2

Lors de la création du dépôt, Borg va vous demander un mot de passe et une confirmation de celui-ci. Choisissez un mot de passe fort que vous pouvez retenir. Si vous oubliez votre mot de passe, dites adieu à vos données.

Ce qui donne:


Création d'un backup

Une petite précision avant de commencer.

Il faut savoir que BorgBackup restaure les données à partir du dossier où vous êtes, d'où vous lancez la commande de restauration.

Donc, si vous indiquez dans la commande pour créer un backup, le chemin complet du dossier à sauver, par exemple: /srv/appdata, il faudra vous rendre à la racine du serveur / pour lancer la commande de restauration si non vous allez restaurer /srv/appdata dans /srv. Ce qui va provoquer un petit bordel structurel => /srv/srv/appdata. Ce que ne nous souhaitons pas, évidemment.

Par contre si vous indiquez juste le dossier contenant le dossier à sauvegarder, il faudra revenir à cet endroit. Donc si je veux sauver le dossier appdata qui se trouve dans /srv, il faudra que je revienne dans /srv pour lancer la commande de restauration.

Dans l'exemple qui suit je vais mettre le dossier complet.

Il suffira d'adapter cette commande suivant votre configuration:

borg create --list /mnt/backup/borg::'appdata-{now}' /srv/appdata

Ce qui donne:

Quelques explications:

  • borg create => on fait appel à Borg pour lui dire qu'on veut créer un backup.
  • --list => va permettre de suivre la progression
  • /mnt/backup/borg => emplacement du dépôt créé
  • 'appdata-{now}' => 'appdata' est le nom de mon backup, à cela j'ajoute la mention {now} est un placeholder, qui a pour fonction d'indiquer qu'il doit, en plus du nom de la sauvegarde que j'ai choisi, indiquer la date de la création de l'archive.
    Il existe d'autres placeholder.
  • /srv/appdata => le dossier contenant les fichiers à sauver.

Vérifier son backup

Il est important de vérifier que votre backup puisse être restaurer sans problème et donc qu'il soit "en bonne santé".

Utilisez la commande suivante:

borg --progress check /mnt/backup/borg

On peut voir la progression:

Si tout est en ordre voici ce que ça retourne:


Lister les archives

En listant vos sauvegardes, vous saurez la quelle restaurer précisément:

borg list /mnt/backup/borg

Ce qui donne:

Je n'en ai qu'une: appdata-2024-03-31T12:41:44


Restaurer un backup

Pour bien vous montrer le processus de restauration, je vais carrément effacer le dossier appdata:

On constate qu'il n'y a plus le dossier... Catastrophe... Mais non!

Maintenant pour le restaurer, il faut se mettre dans le dossier /

On lance la commande:

sudo borg extract --list /mnt/backup/borg::appdata-2024-03-31T12:41:44

J'utilise sudo car les données que je veux sauver ne sont pas dans le /home/user.

Tout est bien revenu!


Supprimer un backup

Gardons l'exemple de la sauvegarde que j'ai: appdata-2024-03-31T12:41:44.

Il suffit de faire cette commande:

borg delete /mnt/backup/borg::appdata-2024-03-31T12:41:44

On voit en effet après avoir supprimé le backup, avec la commande borg list, qu'il n'y a plus rien:


Récupérer la place après la suppression d'un backup

Le fait de supprimer un backup ne supprime pas les chunks qui le compose. Donc supprimer un backup ne vous fera pas gagner de place.

Pour récupérer la place d'un backup supprimé faites cette commande:

borg compact --progress /mnt/backup/borg

Conclusion

Si vous souhaitez aller plus loin je vous invite à consulter le site de BorgBackup, en anglais:

BorgBackup – Deduplicating archiver with compression and authenticated encryption

zarev

🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.