Post

Aide mémoire Borg Backup

Aide mémoire Borg Backup

Initialisation dépôt borg

Avant de lancer notre première sauvegarde, il faut créer un repository (dépôt).

Dépôt non chiffré

Pour créer un repository sans chiffrement

1
borg init -e none /backup/borg

Pour créer un dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.91.215 et port SSH 4022)

1
borg init -e none ssh://user@192.168.91.215:4022/backup/user

Dépôt chiffré

Pour protéger le repository avec une passphrase

1
borg init -e  repokey /backup/borg

la passphrase sera saisie 2 fois

C’est le couple passphrase + clé qui vous permet de déchiffrer le contenu, sauvegarder cette clé.

Si on veut utiliser un dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.91.215 et port SSH 4022)

1
borg init -e repokey ssh://user@192.168.91.215:4022/backup/user

Créer une sauvegarde

commande borg create

On se positionnera dans le dossier concerné avant

1
2
cd /home/user
borg create --stats -C zstd,10 /backup/borg::20230119 .

Explications

  • --stats : afficher des statistiques
  • -C : utiliser la compression
  • /backup/borg::20230119 : Le chemin du dépôt, suivi de :: et du nom de la sauvegarde
  • . : Le dossier à sauvegarder (ici le dossier courant) On peut évidemment mettre plusieurs dossiers, comme avec la commande tar.
  • --progress :afficher la progression de la création de la sauvegarde.
  • --exclude : exclure des dossiers (peut être utilisé plusieurs fois)

Exemple avec progress et 2 dossiers exclus :

1
borg create --progress -C zstd,10 --exclude '.cache' --exclude 'Téléchargements' /backup/borg::20230119 .

Avec un dépôt (repository) chiffré, la passphrase sera demandée.

Avec l’option stats, type de sortie après la sauvegarde

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
------------------------------------------------------------------------------
Repository: /backup/borg
Archive name: 20230119
Archive fingerprint: 10855358175d9bb31f8b52dee8c13c438d3392581ee15f44b8fbeebbb8872b59
Time (start): Thu, 2023-01-19 19:01:32
Time (end):   Thu, 2023-01-19 19:05:33
Duration: 4 minutes 1.15 seconds
Number of files: 26354
Utilization of max. archive size: 0%
------------------------------------------------------------------------
                     Original size    Compressed size  Deduplicated size
This archive:              4.31 GB            2.40 GB            2.23 GB
All archives:              4.31 GB            2.40 GB            2.23 GB
                       Unique chunks     Total chunks
Chunk index:                   22656            27245
----------------------------------------------------------------------

Ne pas utiliser deux fois la même commande, chaque nom de sauvegarde doit être unique !

Si on veut utiliser un dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.21.105 et port SSH 22) :

1
borg create --stats -C zstd,10 ssh://user@192.168.21.105:22/backup/user::20230119 .

Lister les backups

Pour visualiser les backups sur un repository, commande borg list

1
borg list /backup/borg/

Résultat commande

1
20230119          Thu, 2023-01-19 19:01:32 [10855358175d9bb31f8b52dee8c13c438d3392581ee15f44b8fbeebbb8872b59]

Si dépôt chiffré, la passphrase vous sera demandée.

Dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.21.105 et port SSH 22) :

1
borg list ssh://user@192.168.21.105:22/backup/user

Lister le contenu d’un backup

Visualiser le contenu d’un backup sur un dépôt, commande borg list dépôt suivi de deux fois deux points

1
borg list /backup/borg::20230119

Ce qui sort une liste, un extrait (avec les permissions à la ls -l ) :

1
2
3
4
5
-rw-r--r-- user user  5258765 Tue, 2021-07-20 17:40:41 Téléchargements/anydesk_6.1.1-1_x86_64.rpm
drwxr-xr-x user user        0 Wed, 2018-12-26 18:58:19 Modèles
-rw-r--r-- user user   184252 Sat, 2023-01-07 11:24:16 Documents/Sans titre.png
-rw-r--r-- user user   238643 Sat, 2022-01-01 18:41:49 Documents/annee-2022-lt.jpg
-rw-r--r-- user user   258725 Thu, 2022-07-28 10:36:14 Documents/bp-remarque.png

Si backup dépôt chiffré, la passphrase vous sera demandée.

Si dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.21.105 et port SSH 22) :

1
borg list ssh://user@192.168.21.105:22/backup/user::20230119

Informations sur un backup

Informations globales sur un backup, commande borg info dépôt suivi de deux fois deux points

1
borg info /backup/borg::20230119

Résultat commande

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Repository: /backup/borg
Archive name: 20230119
Archive fingerprint: 10855358175d9bb31f8b52dee8c13c438d3392581ee15f44b8fbeebbb8872b59
Comment: 
Hostname: fedora
Username: root
Time (start): Thu, 2023-01-19 19:01:32
Time (end): Thu, 2023-01-19 19:05:33
Duration: 4 minutes 1.15 seconds
Number of files: 26354
Command line: /usr/bin/borg create --stats -C zstd,10 /backup/borg::20230119 .
Utilization of maximum supported archive size: 0%
----------------------------------------------------------------------
                     Original size    Compressed size  Deduplicated size
This archive:              4.31 GB            2.40 GB            2.23 GB
All archives:              4.31 GB            2.40 GB            2.23 GB
                       Unique chunks     Total chunks
Chunk index:                   22656            27245
----------------------------------------------------------------------

Si dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.21.105 et port SSH 22) :

1
borg info ssh://user@192.168.21.105:22/backup/user::20230119

Restaurer des éléments

La commande borg extract dépôt suivi de deux fois deux points

Sans argument, extraction de toute la sauvegarde dans le dossier courant

1
borg extract --progress /backup/borg::20230119

L’option --progress permet de suivre borg dans l’extraction !

Récupérer que quelques éléments en les passant en argument (comme tar), ici le dossier Téléchargements par exemple

1
borg extract --progress /backup/borg::20230119 Téléchargements

Si vous restaurer en tant que root des fichiers d’un autre utilisateur, les données sont extraites dans un premier temps avec le propriétaire root et les droits sont appliqués après l’extraction de tous les fichiers.

Si dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.21.105 et port SSH 22) :

1
borg extract --progress ssh://user@192.168.21.105:22/backup/user::20230119

Monter une sauvegarde

Monter une sauvegarde sur un point de montage. On visualise la sauvegarde comme un dossier classique du système, et restaure les éléments par copier coller en ligne de commande ou graphique.
Le montage se fait dans l’espace utilisateur. Pas besoin des droits root pour faire les opérations de montage et démontage.
En créant un dossier dans /var/tmp nous avons également les droits en tant qu’utilisateur du système.

Créer un dossier temporaire

1
mkdir /var/tmp/borguser

On monte la sauvegarde avec la commande borg mount

1
borg mount /backup/borg::20230119 /var/tmp/borguser

On notera que les données sont montées en lecture seule comme l’indique la commande mount

1
borgfs on /var/tmp/borguser type fuse (ro,nosuid,nodev,relatime,user_id=1000,group_id=1000,default_permissions)

Les données de l sauvegarde sont accessibles en mode fichier, on peut donc les lister, les copier/coller, etc. :

1
ls -l /var/tmp/borguser/
1
2
3
4
5
6
7
8
-rw-rw-r--. 1 user user 3087 18 avril  2020  1
-rw-rw-r--. 1 user user 3518 18 avril  2020  2
-rw-rw-r--. 1 user user 3564 18 avril  2020  3
drwxr-xr-x. 1 user user    0  1 mai    2019  Bureau
drwxr-xr-x. 1 user user    0  4 janv. 18:23  Documents
drwxr-xr-x. 1 user user    0 26 oct.   2020  Images
drwxr-xr-x. 1 user user    0 26 déc.   2018  Modèles
drwxr-xr-x. 1 user user    0 26 oct.   2020  Musique

Pour le démontage , commande borg umount

1
borg umount /var/tmp/borguser

ou la commande native fusermount

1
fusermount -u /var/tmp/borguser

Supprimer des backup

On exécute la commande borg list, 4 backups

1
2
3
4
20230119         Thu, 2023-01-19 19:01:32 [10855358175d9bb31f8b52dee8c13c438d3392581ee15f44b8fbeebbb8872b59]
20230119-2       Thu, 2023-01-19 19:19:49 [cf1a5b5379437ee2a7a55c82325d976bd884d9d499e5e7486e776c8e95e7ae1e]
20230119-3       Thu, 2023-01-19 19:24:25 [e91320464b75d48bf72d6e1f14de0403df9cefb50d91a66a39a5d04585f9ac8b]
20230119-4       Thu, 2023-01-19 19:24:43 [9ba338b605faed78d75321dfc04c889be41f81b2d222d2cf77d67d8134767b30]

Pour supprimer un backup, on utilise la commande borg delete avec la même syntaxe que lors de la création avec les deux fois deux points :

1
borg delete /backup/borg::20230119-2

On exécute de nouveau la commande borg list , le backup 2 est supprimé

1
2
3
20230119         Thu, 2023-01-19 19:01:32 [10855358175d9bb31f8b52dee8c13c438d3392581ee15f44b8fbeebbb8872b59]
20230119-3       Thu, 2023-01-19 19:24:25 [e91320464b75d48bf72d6e1f14de0403df9cefb50d91a66a39a5d04585f9ac8b]
20230119-4       Thu, 2023-01-19 19:24:43 [9ba338b605faed78d75321dfc04c889be41f81b2d222d2cf77d67d8134767b30]

les 3 autres sauvegardes sont bien intactes

Si dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.21.105 et port SSH 22) :

1
borg delete ssh://user@192.168.21.105:22/backup/user::20230119-2

Supprimer des archives ne libère pas réellement de la place.
Compacter le dépôt avec la commande borg compact

1
borg compact /backup/borg

Garder les X derniers backups

Pour garder que les X derniers backups (utile dans le cas d’une automatisation via script) commande borg prune

ici avec les 2 derniers

1
borg prune --keep-last 2 /backup/borg

Lister, il ne me reste que les 2 derniers

1
2
20230119-3       Thu, 2023-01-19 19:24:25 [e91320464b75d48bf72d6e1f14de0403df9cefb50d91a66a39a5d04585f9ac8b]
20230119-4       Thu, 2023-01-19 19:24:43 [9ba338b605faed78d75321dfc04c889be41f81b2d222d2cf77d67d8134767b30]

Sachant que borg déduplique et compresse, on peut en garder plus !

Si dépôt distant à travers SSH, on utilisera la syntaxe suivante (avec destination = 192.168.21.105 et port SSH 22) :

1
borg prune --keep-last 2 ssh://user@192.168.21.105:22/backup/user

Options

  • --keep-last 5 : Garder les 5 derniers backup
  • --keep-daily 5 : Garder les 5 derniers backups journaliers
  • --keep-monthly 5 : Garder les 5 derniers backups mensuels

Vérifier le dépôt

Pour vériier la cohérence du dépôt, commande borg check et recherche d’éventuels problèmes

1
borg check --progress /backup/borg

Compacter les données

A force de générer des sauvegardes, et d’en supprimer, on peut tenter de recompacter l’ensemble des données pour libérer un peu d’espace, commande borg compact

1
borg compact --progress /backup/borg

Changer la passphrase

Changer une passphrase, commande borg key

1
borg key change-passphrase /backup/chiffre

L’ancienne clé vous sera demandée et deux fois la nouvelle :

1
2
3
Enter passphrase for key /backup/chiffre: 
Enter new passphrase: 
Enter same passphrase again: 
Cet article est sous licence CC BY 4.0 par l'auteur.