GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sauvegarder et restaurer des fichiers à l'aide de BorgBackup sous Linux

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.


Linux
  1. MySQL :comment sauvegarder (vider) et restaurer une base de données à l'aide de mysqldump

  2. Comment sauvegarder et restaurer les paramètres d'application à l'aide de Mackup sur un système Linux nouvellement installé

  3. Comment sauvegarder et restaurer le référentiel SVN sous Linux

  4. Comment archiver et compresser des fichiers sous Linux

  5. Comment sauvegarder et restaurer une base de données dans PostgreSQL

Comment sauvegarder et restaurer des données à l'aide de Retic sous Linux

Comment sauvegarder et restaurer le système Linux avec Timeshift

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

Comment utiliser Timeshift pour sauvegarder et restaurer Linux

Comment cloner et restaurer une partition Linux à l'aide de la commande dd

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux