Sous Linux, il existe plusieurs outils de sauvegarde fournissant des fonctionnalités pour la sauvegarde au niveau du système ainsi que la sauvegarde des données utilisateur. Dans cet article complet, nous allons examiner ce qu'est BorgBackup et comment sauvegarder et restaurer des fichiers à l'aide de Borg dans les systèmes Linux et de type Unix.
1. Présentation
Lorsque je traite beaucoup de données dans mon travail, les questions évidentes qui me viennent à l'esprit sont :1. Et si je perds mes données ? 2. Dans quelle mesure mes données sont-elles sécurisées ?
Le même scénario sera appliqué à la machine personnelle. Vous devez toujours sauvegarder vos données en fonction de leur importance et protéger vos données contre tout accès illégal.
Qu'il s'agisse de vos données personnelles ou de données officielles, vous devez toujours planifier une bonne stratégie de sauvegarde et utiliser des outils de sauvegarde robustes qui vous aideront à sauvegarder vos données importantes. L'une des applications de sauvegarde open source les plus recommandées et les plus utilisées est "Borg" .
2. Qu'est-ce que Borg ?
BorgBackup, en bref borg, est un outil de sauvegarde créé pour fournir un moyen efficace de sauvegarder vos données en utilisant la technique de déduplication.
Certaines des caractéristiques uniques de borg sont répertoriées ci-dessous.
- Déduplication - La technique de déduplication ne stocke que les copies incrémentielles des données, ce qui est parfait pour effectuer des sauvegardes quotidiennes.
- Multiplateforme - Borg peut être installé et utilisé sous Linux, Mac OS X et FreeBSD.
- Sécurisé - Prend en charge le cryptage des données à l'aide de AES cryptage (256 bits), pour vérifier l'authenticité HMAC-SHA256 est utilisé.
- Compression - Les données peuvent être compressées à l'aide des méthodes de compression suivantes :
- LZ4 -> Super rapide, faible compression.
- ZSTD -> Haute vitesse et faible compression à basse vitesse et haute compression.
- ZLIB > Vitesse moyenne, compression moyenne.
- LZMA -> Basse vitesse, haute compression.
- Sauvegarde à distance - Les données peuvent être sauvegardées sur des machines distantes via le protocole SSH.
3. Installer Borg sous Linux
Borg est disponible dans les dépôts par défaut de la plupart des distributions Linux. Ainsi, il peut être installé à l'aide du gestionnaire de packages spécifique à la distribution.
Pour installer borg dans Alpine Linux, exécutez la commande suivante :
$ sudo apk add borgbackup
Pour installer borg dans Arch Linux et ses variantes telles que EndeavourOS et Manjaro Linux, exécutez la commande suivante :
$ sudo pacman -S borg
Installez borg dans la distribution basée sur Debian/Ubuntu :
$ sudo apt install borgbackup -y
Installez borg dans Fedora, RHEL, CentOS, AlmaLinux et Rocky Linux :
$ sudo dnf install borgbackup -y
Installez Borg dans openSUSE :
$ sudo zypper install borgbackup -y
Puisque borg est écrit en Python , vous pouvez utiliser le gestionnaire de packages python PiP pour installer borg. Selon la version de pip installée, vous pouvez exécuter l'une des commandes suivantes.
$ pip install borgbackup
Ou,
$ pip3 install borgbackup
Une fois installé, vous pouvez vérifier l'installation de Borg en exécutant les commandes version et help :
$ borg --version
$ borg --help
4. Effectuez votre première sauvegarde avec Borg
Vous devez comprendre deux termes importants avant d'effectuer votre première sauvegarde.
- Archives - La copie de sauvegarde (instantanés) de vos données sera appelée une archive.
- Référentiels - Répertoires de votre système de fichiers local ou distant où les archives sont stockées.
Initialisez d'abord un référentiel (répertoire) où les archives seront stockées.
J'ai une liste de fichiers dans un répertoire nommé "source" et créé un nouveau répertoire nommé "backup" qui servira de référentiel pour le stockage des archives.
5. Initialiser le dépôt
Exécutez le borg init
commande pour initialiser le répertoire de sauvegarde. Le répertoire de sauvegarde peut se trouver sur une machine locale ou sur une machine distante. Dans mon cas, j'initialise le répertoire (c'est-à-dire sauvegarde ) que j'ai déjà créé.
$ borg init --encryption=none /home/karthick/borg/backup
$ borg init --encryption=repokey /home/karthick/borg/backup
$ borg init --encryption=keyfile /home/karthick/borg/backup
Lorsque vous initialisez un référentiel, vous pouvez choisir le type de chiffrement . Lorsque vous utilisez le type de chiffrement comme "Aucun" , aucun chiffrement ne sera appliqué. Lorsque vous utilisez "repokey" et "fichier clé" comme types de chiffrement, il utilise AES-CTR-256 pour le cryptage.
Choisissez n'importe quel type de cryptage et exécutez le init
commande. Dans mon cas, je choisis le type de cryptage comme aucun à des fins de démonstration.
6. Sauvegarder des fichiers avec Borg
6.1. Créer la première sauvegarde
Une fois le référentiel initialisé, vous pouvez créer des archives de sauvegarde en exécutant la commande suivante :
$ borg create --stats --progress /home/karthick/borg/backup::25-11-2021 /home/karthick/borg/source/
Ici, je donne le nom de l'archive au format date "25-11-2021" simulant des sauvegardes quotidiennes. Sans --stats
et --progress
flags, la sortie de la commande create sera silencieuse.
6.2. Afficher les fichiers lors de la création de sauvegardes
Vous pouvez également combiner le --list
et -v
drapeau pour afficher la liste des fichiers dans l'archive lors de l'exécution de borg create
commande.
$ borg create --list -v /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/
6.3. Créer des sauvegardes compressées
Par défaut, borg utilise le lz4 algorithme de compression. L'algorithme de compression lz4 est très rapide et a un faible taux de compression. Si vous souhaitez utiliser un algorithme de compression différent, vous pouvez utiliser le --compression
flag et transmettez le type avec le niveau de compression.
Par exemple, si je souhaite utiliser le zstd algorithme, alors ma commande sera la suivante.
$ borg create --compression zstd,1 /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/
Vous pouvez consulter différents algorithmes de compression et leur niveau dans la documentation officielle de Borg .
6.4. Obtenir des informations sur les archives
Vous pouvez utiliser les info
commande pour obtenir des informations sur une archive spécifique.
$ borg info /home/karthick/borg/backup/::25-11-2021
7. Lister les sauvegardes
Utilisation de la borg list
commande, vous pouvez interroger votre référentiel pour trouver la liste des archives et quels fichiers se trouvent dans les archives.
Pour obtenir la liste des archives uniquement, exécutez la commande suivante.
$ borg list /home/karthick/borg/backup
Exemple de résultat :
25-11-2021 Thu, 2021-11-25 13:16:53 [653d952301fc70ab9f2f74794361359144e05f5534e668ef4a4957d2c7f67937]
26-11-2021 Thu, 2021-11-25 13:19:51 [473bbe30fbe8597b63910310d567e69b501b2fb7127f04a78da76ab59d90114f]
27-11-2021 Thu, 2021-11-25 13:20:01 [0e6813f1a05246d43d196de9d28034d0397b4ae50cd20ee50163e347efee3e2a]
Vous pouvez également utiliser le --json
drapeau qui donnera plus d'informations sur le référentiel et la liste des archives dans le json formater.
$ borg list --json /home/karthick/borg/backup
7.1. Lister les fichiers dans les archives
Pour obtenir la liste des fichiers dans une archive, exécutez la commande suivante. Ici, je liste les fichiers de l'archive "25-11-2021" .
$ borg list /home/karthick/borg/backup::25-11-2021
Exemple de résultat :
drwxrwxr-x karthick karthick 0 Thu, 2021-11-25 12:48:58 home/karthick/borg/source
-rw-r--r-- karthick karthick 807 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/project_profile.txt
-rw------- karthick karthick 2301 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/hist.txt
-rw-r--r-- karthick karthick 220 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/external.txt
-rw-r--r-- karthick karthick 3895 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/config.txt
Vous pouvez également utiliser le --json-lines
flag pour lister le contenu de l'archive en JSON formater.
7.2. Exclure des fichiers et des répertoires de la sauvegarde
Vous pouvez exclure des fichiers et des répertoires en utilisant le -e
ou --exclude
drapeau.
$ borg list /home/karthick/borg/backup::25-11-2021 --exclude "hist"
8. Trouver la différence entre les archives
Vous pouvez utiliser le diff
commande pour comparer deux archives.
Je crée un nouveau fichier nommé datafile.txt
sous le source
annuaire. J'ai également créé une autre archive nommée 28-11-2021 .
Maintenant, je peux comparer la nouvelle archive et l'ancienne comme ci-dessous :
$ borg diff /home/karthick/borg/backup/::27-11-2021 28-11-2021 added 2.89 kB home/karthick/borg/source/datafile.txt
9. Renommer les archives
Une fois qu'une archive est créée et si vous souhaitez la renommer, vous pouvez le faire en utilisant le borg rename
commande.
Disons si je souhaite renommer l'archive "27-11-2021" au "29-11-2021" , je peux le faire en exécutant la commande suivante.
$ borg rename /home/karthick/borg/backup/::27-11-2021 29-11-2021
10. Restaurer les fichiers à l'aide de borg (extraire les données de l'archive)
L'objectif principal de la sauvegarde des données est de les restaurer chaque fois que nécessaire. Vous pouvez donc utiliser l'borg extract
commande pour récupérer les données des archives. Lorsque vous exécutez l'extract
commande, il extraira les données dans le répertoire de travail actuel à partir duquel vous exécutez la commande d'extraction.
Exécutez la commande suivante pour extraire une archive dans le répertoire de travail actuel. Avec le -v
et --list
drapeau ajouté, il vous montrera la liste des fichiers extraits.
$ borg extract -v --list backup/::25-11-2021
Vous pouvez également utiliser --dry-run
drapeau qui affichera simplement ce qui va être extrait au lieu de l'extraire.
$ borg extract --dry-run -v --list backup/::25-11-2021
Vous pouvez extraire un répertoire particulier de l'archive en transmettant le nom du répertoire. Comme je n'ai qu'un seul répertoire dans mon archive, il le récupérera.
$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/
10.1. Exclure les fichiers de la restauration
Vous pouvez également ajouter --exclude
pour omettre des fichiers lors de l'extraction d'un répertoire. Ici, j'extrait tous les fichiers à l'exclusion de tout fichier avec hist .
$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/ --exclude "hist"
11. Monter et démonter le dépôt et les archives
Vous pouvez monter le référentiel ou une archive particulière en tant que système de fichiers fuse. Vous pouvez ensuite restaurer les fichiers à l'aide de l'archive montée.
Pour monter l'intégralité du référentiel, exécutez les commandes suivantes :
$ mkdir /tmp/borg/
$ borg mount /home/karthick/borg/backup/ /tmp/borg/
$ ls -l /tmp/borg/
Exemple de résultat :
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 25-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 26-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 27-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 28-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:32 29-11-2021
Vous pouvez voir sur la sortie ci-dessus que toutes mes archives sont montées en tant que répertoire et maintenant je peux simplement restaurer en copiant les fichiers.
Pour monter des archives particulières, ajoutez simplement le nom de l'archive avec le référentiel.
$ borg mount /home/karthick/borg/backup/::25-11-2021 /tmp/borg/
Pour démonter le référentiel ou les archives montés, utilisez le borg umount
commande.
$ borg umount /tmp/borg
$ ls -l /tmp/borg
12. Élaguer les archives
Le borg prune
La commande sera très utile lorsque vous automatisez vos sauvegardes et que vous souhaitez uniquement conserver certaines copies et nettoyer les copies restantes.
Les options du tableau ci-dessus déterminent le nombre de copies d'archive à conserver dans votre référentiel. Par exemple, si je souhaite ne conserver que 2 copies de ma sauvegarde hebdomadaire, alors ma commande sera la suivante.
$ borg prune -v --list --keep-weekly=2 /home/karthick/borg/backup/
Vous pouvez également appliquer la condition susmentionnée à certaines archives uniquement. Par exemple, disons que j'ai 10 archives dans mon référentiel et que je souhaite appliquer la règle de rétention pour archive7, je peux alors utiliser le --prefix
drapeau pour définir la condition.
$ borg prune -v --list --keep-weekly=2 --prefix='{archive name}' /home/karthick/borg/backup/
Avant d'exécuter le prune
commande, faites un essai à l'aide de la commande --dry-run
drapeau.
13. Supprimer le référentiel et archiver
Vous pouvez supprimer une archive ou l'intégralité du référentiel à l'aide de la commande borg delete
commande.
Pour supprimer une seule archive, vous devez fournir le nom de l'archive.
$ borg delete /home/karthick/borg/backup/::26-11-2021
Pour supprimer l'intégralité de l'archive, indiquez simplement le chemin du référentiel. Lors de la suppression de l'intégralité du répertoire, vous serez invité à fournir une confirmation.
$ borg delete /home/karthick/borg/backup/
14. Modifier la phrase secrète de la clé
Jusqu'à présent, j'ai montré mon exemple sans appliquer de cryptage au référentiel. Comme annoncé dans la section initiale, vous pouvez initialiser un répertoire avec le cryptage activé et si repokey
ou keyfile
est utilisé, il vous demandera éventuellement de définir une phrase secrète.
$ borg init --encryption=repokey /home/karthick/borg/bkup/
À partir de maintenant, chaque fois que j'essaie d'effectuer une opération sur ce référentiel, je dois fournir la phrase secrète à chaque fois. Jetez un œil à l'image ci-dessous, j'essaie de répertorier le référentiel et je dois lui fournir une phrase secrète.
Supposons maintenant que vous souhaitiez modifier la phrase secrète, vous pouvez le faire en utilisant le borg change-passphrase
commande.
$ borg key change-passphrase -v /home/karthick/borg/bkup
Vous pouvez également définir la phrase secrète à l'aide de variables d'environnement.
$ BORG_PASSPHRASE="old password" BORG_NEW_PASSPHRASE="new password" borg key change-passphrase /home/karthick/borg/bkup
15. Clé d'exportation et d'importation
Vous pouvez sauvegarder la clé du référentiel en l'exportant et en l'important ultérieurement si nécessaire.
Pour exporter la clé, exécutez la commande suivante :
$ borg key export bkup/ ./key
$ cat ./key
Pour importer la clé dans le même référentiel, exécutez la commande suivante :
$ borg key import bkup/ ./key
16. Travailler avec des référentiels distants
Tout ce que nous avons vu jusqu'à présent sauvegarde vos données dans la même machine. Borg prend également en charge les référentiels distants où vous pouvez sauvegarder vos données sur n'importe quelle machine distante. L'hôte distant doit être accessible via SSH.
Syntaxe :
$ borg init [email protected]:/path/to/repo
Exemple :
$ borg init [email protected]:/home/karthick/borg/bkup
Vous pouvez effectuer toutes sortes d'opérations similaires à celles que vous pouvez effectuer avec une sauvegarde locale. Par exemple, pour restaurer la sauvegarde, vous pouvez utiliser extract
et vous pouvez également utiliser le mount
commande pour monter un référentiel distant.
Ici, lorsque vous pointez vers le répertoire distant, vous devez pointer le protocole ssh comme "ssh://[email protected]:port/path/to/repo
".
$ borg mount ssh://[email protected]:2222/home/karthick/borg/bkup /tmp/borg
$ borg extract ssh://[email protected]:2222/home/karthick/borg/bkup
17. Clients de bureau à interface graphique Borg
Étant donné que BorgBackup est purement un outil de ligne de commande, il est presque impossible de se souvenir de toutes les commandes. Certains d'entre vous préféreront peut-être une belle application graphique qui vous permet de sauvegarder des données via une interface graphique. Ne t'inquiètes pas!
Vorta est un client de bureau GUI pour BorgBackup. En utilisant Vorta, vous pouvez facilement intégrer l'application Borg à votre environnement de bureau préféré. Pas besoin de mémoriser les commandes. Tout peut se faire via une interface graphique simple !
Pour plus de détails sur l'installation et l'utilisation de Vorta, consultez le guide suivant.
- Vorta – Une interface graphique pour BorgBackup
18. Conclusion
Dans cet article, nous avons vu comment utiliser borg pour sauvegarder et restaurer vos données sous Linux. Borg a tellement de fonctionnalités que vous pouvez comprendre en testant l'outil. Une bonne alternative à borg sera Timeshift pour effectuer une sauvegarde au niveau du système et rsync pour prendre des fichiers et répertoires utilisateur.