Aller au contenu

Restic

Restic est programme de sauvegarde.

Prérequis: installer restic. Sur Debian et dérivée, c'est simple:

apt install restic

Créer un dépôt de sauvegarde

Pour utiliser restic, 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 restic.

restic init -r /chemin-vers-depot/mon-dossier-de-save

Il demandera un mot de passe à tapper 2 fois. Le dépôt est systématiquement chiffré !

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

restic backup /home/user/Documents -r /chemin-vers-depot/mon-dossier-de-save

Lister les snapshots d'un dépôt de sauvegarde

Pour lister les snapshots d'un dépôt de sauvegarde, on utilisera l'option snapshots

restic snapshots /chemin-vers-depot/mon-dossier-de-save

Le resultat sera de la forme:

 enter password for repository: 
repository bdb1eabd opened (repository version 2) successfully, password is correct
ID        Time                 Host        Tags        Paths
-------------------------------------------------------------------------------
e02e33fe  2025-05-05 11:12:24  pc-jo                   /home/jo/.config/vivaldi
                                                       /home/jo/.mozilla
                                                       /home/jo/.thunderbird

5aa25606  2025-05-05 11:13:22  pc-jo                   /home/jo/.config/vivaldi
                                                       /home/jo/.mozilla
                                                       /home/jo/.thunderbird

5bc2edd6  2025-05-05 11:13:39  pc-jo                   /home/jo/.config/vivaldi
                                                       /home/jo/.mozilla
                                                       /home/jo/.thunderbird

9c7277e3  2025-05-05 12:47:36  pc-jo                   /home/jo/.config/vivaldi
                                                       /home/jo/.mozilla
                                                       /home/jo/.thunderbird
-------------------------------------------------------------------------------
4 snapshots

Restaurer 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 restore

restic restore -r /chemin-vers-depot/mon-dossier-de-save 5aa25606 --include /chemin-vers-dossier/mon-fichier --target /mon-dossier/de-destination
  • 5aa25606: ID présent dans la liste des snaphots

Monter/Démonter une sauvegarde dans un point de montage

Pour monter une sauvegarde dans un point de montage, on utilisera l'option mount

restic mount -r /chemin-vers-depot/mon-dossier-de-save /mnt/mon-point-de-montage

Pour démonter ce point de montage, c'est simple, on fera ctrl+c

  • Le montage nous permettra de voir tous les snapshots
  • La restauration par ce moyen sera plus lente

Rotation des sauvegardes

Pour la rotation, tout est prévu, on utilisera l'option forget (forget=oublier)

restic forget --keep-last 10 /chemin-vers-depot/mon-dossier-de-save
  • --keep-last 10: Garde, ici, les 10 derniers backups

Maintenance des dépôts de sauvegarde

L'option forget permet uniquement de désindexer le snapshot, mais ça ne libère pas le stockage. Pour ça il faudra utiliser l'option prune

restic prune -r /chemin-vers-depot/

Vérification des dépôts de sauvegarde

restic check -r /chemin-vers-depot/

Exemple de script d'automatisation

#!/bin/bash

export RESTIC_PASSWORD="mon_mot_de_passe"
destination=/mnt/auto/coin-a-jojo-srv/save-mozilla-vivaldi
vivaldi=/home/jo/.config/vivaldi
firefox=/home/jo/.mozilla
thunderbird=/home/jo/.thunderbird

restic backup $vivaldi $firefox $thunderbird -r $destination

restic forget --keep-last 8 -r $destination

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, /mnt, /media, /pro,...)

restic backup --one-file-system / -r $destination

Il est possible d'exclure un répertoire ou des fichiers avec l'option: --exclude

exemple:

restic backup --one-file-system --exclude /var/lib/lxc --exclude /home/jo --exclude /var/lib/docker / -r /mon_dossier/de_destination

Voir la doc officiel: [https://restic.readthedocs.io/en/stable/index.html]