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:
&
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: