Table des matières

, ,

Sauvegarder avec restic

restic un programme en ligne de commande permettant de sauvegarder ses données.

Principales caractéristiques de restic :

Démarrage rapide

Dans cet exemple, pour se familiariser avec les principales commandes, on utilise un dépôt local.

restic intègre une aide en ligne :

restic help

Initialiser un dépôt

restic conserve les sauvegardes au sein d'un dépôt. On commence donc par en créer un via la commande init.

restic --repo /home/yoann/backups/restic-repo init

A la création du dépôt un mot de passe est demandé. Ce mot de passe est important, il sera nécessaire pour toute interaction avec le dépôt.

Pour ne pas avoir à systématiquement préciser le dépôt à utiliser via l'argument --repo, on pourra définir une variable d'environnement :

export RESTIC_REPOSITORY=/home/yoann/backups/restic-repo/
 
# Pour éviter de ressaisir le mot de passe
export RESTIC_PASSWORD=MyVeryGooooodPassWord

Sauvegarder

On peut à présent créer sa première sauvegarde :

restic backup ~/Documents

restic désigne par “snapshots” vos sauvegardes. Pour lister les snapshots présents dans le dépôt :

restic snapshots

Certaines commandes peuvent être exécutés “à blanc” via l'option --dry-run. C'est le cas pour la sauvegarde.

On ajoute un nouveau fichier au dossier ~/Documents, puis on simule une sauvegarde (avec l' option --dry-run)

echo "Hello World!" > ~/Documents/aNewFile.txt
 
# test la commande de sauvegarde
restic backup ~/Documents/ --dry-run

restic détecte bien le nouveau fichier et indique que seulement celui-ci sera copié. On peut effectivement exécuter la sauvegarde :

restic backup ~/Documents

Lister/rechercher dans le dépot

Pour lister l'ensemble des fichiers présents dans le snapshot le plus récent :

restic ls latest

Pour ne lister que le contenu d'un sous-dossier :

restic ls latest /home/yoann/Documents/factures

Pour rechercher un fichier dans les sauvegardes :

restic find "wishlist*"
 
# rechercher uniquement dans le dernier snapshot
resstic find "wishlist*" latest
 
# rechercher uniquement dans les snapshot désignés
restic find "wishlist*" 5e1ea3aa 4d22f100

La recherche est sensible à la casse de caractères mais on peut utiliser l'option --ignore-case pour changer ce comportement par défaut.

restic find --ignore-case "contrat*" latest

Restaurer

Par défaut la restauration reconstruit le chemin complet dans le répertoire de destination (cible) :

# le fichier et les dossiers parents sont recréés sur la destination (target)
restic restore latest --include /home/yoann/Documents/wishlist.txt --target /tmp

Dans le cas présenté ci-dessus le dossier /tmp contiendra après exécution de la restauration /tmp/home/yoann/Documents/wishlist.txt.

Si l'on souhaite restaurer le fichier à son emplacement initial, on peut saisir :

restic restore latest --include /home/yoann/Documents/wishlist.txt --target /

Pour ne pas reconstruire l'ensemble de l’arborescence et restaurer seulement le fichier souhaité dans un répertoire cible différent, on peut utiliser la syntaxe :

restic restore latest:/home/yoann/Documents/ --include "wishlist.txt" --target /tmp

De la même manière, pour restaurer le dossier /home/yoann/Documents/factures et son contenu dans le répertoire cible /tmp sans recréer toute l'arborescence :

restic restore latest:/home/yoann/Documents --include factures --target /tmp/

Pour restaurer le dernier snapshot :

restic restore latest --target /

Supprimer un snapshot

La suppression s'effectue en deux temps via les commandes forget puis prune.

forget et prune ont également une option d'exécution à blanc via l'argument --dry-run

restic forget latest --dry-run
 
restic forget latest
 
restic prune --dry-run

Après la commande prune on peut vouloir vérifier l'intégrité du dépôt.

Maintenance du dépôt

Il est recommandé de vérifier périodiquement l'état du dépôt :

restic check
restic check --read-data

Références