Principales caractéristiques de restic :
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
restic conserve les sauvegardes au sein d'un dépôt. On commence donc par en créer un :
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'option --repo, on pourra définir une variable d'environnement :
export RESTIC_REPOSITORY=/home/yoann/backups/restic-repo/
On peut faire créer sa première sauvegarde :
restic backup ~/Documents
restic désigne snapshots vos sauvegardes. Pour lister les snapshots présents dans le dépot :
restic snapshots
On ajoute un nouveau fichier au dossier ~/Documents, puis on simule une sauvegarde (avec l' option --dry-run)
echo "Hello World!" > ~/Documents/aNewFile.txt restic backup ~/Documents/ --dry-run
restic détecte bien le nouveau fichier et indique que seulement celui-ci sera copié. On peut faire une nouvelle sauvegarde :
restic backup ~/Documents
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. Utiliser l'option --ignore-case pour changer le comportement par défaut.
restic find --ignore-case "contrat*" latest
Par défaut la restauration reconstruit le chemin complet dans le répertoire destination (cible) :
# le fichier et les dossiers parents sont recréés sur la destination (taget) 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 /tmp/home/yoann/Documents/wishlist.txt.
Pour ne pas reconstruire l'ensemble de l’arborescence et restaurer seulement le fichier dans le répertoire cible, 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 :
restic restore latest:/home/yoann/Documents --include factures --target /tmp/
Pour restaurer l'ensemble du snapshot :
restic restore latest --target /tmp/
Lors de la restauration dans le répertoire cible, restic reconstruit l'arborescence complète jusqu'au fichier.
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.
Il est recommandé de vérifier périodiquement l'état du dépôt :
restic check
restic check --read-data