Prérequis: installer borgbackup. Sur Debian et dérivée, c'est simple:
apt install borgbackup
Créer un dépôt de sauvegarde¶
Pour utiliser borgbackup, il va falloir préparer un répertoire vide, créer normalement pour l'occasion.
On pourra utiliser un navigateur de fichier et créer un dossier classiquement, ou bien avec mkdir
mkdir /chemin-vers-depot/mon-dossier-de-save
Ensuite, on va utiliser l'option init afin de préparer le dossier au fonctionnement de borgbackup.
borgbackup init -e none /chemin-vers-depot/mon-dossier-de-save
-e: on précisera le chiffrement voulu, ici none= aucun.
Créer un dépôt de sauvegarde chiffré¶
Pour créer un dépôt de sauvegarde chiffré cette fois, il y a deux options:
repokey: Crée une clé dans le dépôt de sauvegarde, il faudra un mot de passe, ou phrase de passe, pour y accéder. keyfile: Crée une paire de clé, une dans le dépôt de sauvegarde et une dans le dossier ~/.config/borg/keys. Une phrase de passe peut-être ajoutée. Dans le même principe qu'avec les clés de chiffrements asymétriques de SSH ou GPG, il faut bien penser à sauvegarder (dans un endroit sûr !) les clés du dossier ~/.config/borg/keys
ex:
borg init -e repokey(ou)keyfile /chemin-vers-depot/mon-dossier-de-save
Exemple concret:
borg init -e keyfile /home/jo/depot-save
Liste des fichiers de clé présent dans ~/.config/borg/keys:
ls ~/.config/borg/keys
depot_save
Créer une sauvegarde¶
Une fois le dépôt préparer, on va pouvoir lancer une première sauvegarde. On utilisera l'option create
borgbackup create /chemin-vers-depot/mon-dossier-de-save::backup1 /home/user/Documents
Lister le contenu d'un dépôt de sauvegarde¶
Pour voir le contenu d'un dépôt de sauvegarde, on utilisera l'option list
borgbackup list /chemin-vers-depot/mon-dossier-de-save
Le resultat sera de la forme:
06.09.2019-10:00:01 Fri, 2019-09-06 10:00:02 [5de6dfea53a13dbdd56a6fcca8457fb14afbb5c1561558c1f656298b034e9be3]
06.09.2019-10:30:01 Fri, 2019-09-06 10:30:02 [0afc41640dcad593e83679661f407ac536d920f945307df9e11852de558236bf]
06.09.2019-11:00:01 Fri, 2019-09-06 11:00:01 [bc04ee778f80767f52b2250c73b918f5558c14cdca2d5bc645812576fb41716f]
06.09.2019-11:30:01 Fri, 2019-09-06 11:30:02 [6f9ddb719ce026cb7dfc8ef973faf8b81b8222e7bd695c977a3518a07359a440]
06.09.2019-12:00:01 Fri, 2019-09-06 12:00:01 [2777a603369fde3ff6a005ccda702cfc6849ede2a936847dec97b75a9623a577]
06.09.2019-12:30:02 Fri, 2019-09-06 12:30:02 [b80b3a234bc3756ba8ed00015ce8914f2711a9c2883a5728ab4ba182fb5ab0b5]
06.09.2019-13:00:02 Fri, 2019-09-06 13:00:02 [7219efcd7857398d87b57cc95d57c232df21d510659cf471b6348abcd082a966]
06.09.2019-13:30:01 Fri, 2019-09-06 13:30:02 [db438bd05d23b25798c9e519e708759fb018f80fc67c355b7e67ebf56c028e00]
06.09.2019-14:00:01 Fri, 2019-09-06 14:00:01 [0ac857bf9321c321db743e79de08fbdaac9ccaaa18ba163034cd9cf7a3ea12e1]
06.09.2019-14:30:01 Fri, 2019-09-06 14:30:01 [a05d0539a2b0a4f3c063a64366c9982a5d8be30b96916fe1138cb9dac55b9774]
On peut lister le contenu d'un backup à l'intérieur d'un dépôt:
borgbackup list /chemin-vers-depot/mon-dossier-de-save::backup1
Extraire un fichier ou un dossier d'un backup¶
Après avoir lister le contenu, on peut extraire un fichier ou un dossier avec l'option extract
borgbackup extract /chemin-vers-depot/mon-dossier-de-save::backup1 /chemin-vers-dossier/mon-fichier
Monter/Démonter une sauvegarde dans un point de montage¶
Pour monter une sauvegarde dans un point de montage, on utilisera l'option mount
borgbackup mount /chemin-vers-depot/mon-dossier-de-save::backup1 /mnt/mon-point-de-montage
Pour démonter ce point de montage, c'est simple, on utilisera cette fois l'option umount
borgbackup umount /mnt/mon-point-de-montage
Rotation des sauvegardes¶
Pour la rotation, tout est prévu, on utilisera l'option prune (prune= nettoyer, élaguer...)
borgbackup prune --keep-last 10 /chemin-vers-depot/mon-dossier-de-save
--keep-last 10: Garde, ici, les 10 derniers backups
Voici les différentes option de prune:
-n, --dry-run: do not change repository --force: force pruning of corrupted archives -s, --stats: print statistics for the deleted archive --list: output verbose list of archives it keeps/prunes --keep-within INTERVAL: keep all archives within this time interval --keep-last, --keep-secondly: number of secondly archives to keep --keep-minutely: number of minutely archives to keep -H, --keep-hourly: number of hourly archives to keep -d, --keep-daily: number of daily archives to keep -w, --keep-weekly: number of weekly archives to keep -m, --keep-monthly: number of monthly archives to keep -y, --keep-yearly: number of yearly archives to keep --save-space: work slower, but using less space
Exemple de script d'automatisation¶
#!/bin/bash
depot='/mnt/auto/coin-a-jojo-srv/save-mozilla'
borgbackup create $depot::{now:%d.%m.%Y-%H:%M:%S} /home/jo/.thunderbird /home/jo/.mozilla
borgbackup prune --keep-last 10 $depot
{now:%d.%m.%Y-%H:%M:%S}: donnera, en nom de fichier la date, le mois, l'année, l'heure, les minutes et les seconde au moment de la sauvegarde
Dans le cas d'un dépôt paramétré en mode repokey, on pourra ajouté le mot de passe avec l'option export BORG_PASSPHRASE
#!/bin/bash
export BORG_PASSPHRASE='ma_super_phrase_de_passe'
depot='/mnt/auto/coin-a-jojo-srv/save-mozilla'
borgbackup create $depot::{now:%d.%m.%Y-%H:%M:%S} /home/jo/.thunderbird /home/jo/.mozilla
borgbackup prune --keep-last 10 $depot
Sauvegarder tout un système complet¶
Pour faire une sauvegarde complète de la partition racine "/" d'un système linux on utilisera une option supplémentaire: --one-file-system. Cette option permettra de ne copier que les fichiers et dossiers utiles au fonctionnement du système. Elle exclura donc les dossiers: (/dev, /var,...)
borgbackup create --one-file-system /chemin-vers-depot/mon-dossier-de-save::image-systeme /
Il est possible d'exclure un répertoire ou des fichiers avec l'option: --exclude
exemple:
borgbackup create --one-file-system --exclude=/var/lib/lxc /chemin-vers-depot/mon-dossier-de-save::image-systeme /
Vérifier l'intégrité d'un dépôt¶
borgbackup check -v /chemin-vers-depot/mon-dossier-de-save
-v: mode verbeux, pour avoir de l'info.
Voir la doc officiel: [https://borgbackup.readthedocs.io/en/stable/index.html https://borgbackup.readthedocs.io/en/stable/index.html]