Comment sauvegarder vos fichiers avec Restic ?
Il y’a quelques semaines, je vous ai parlé de RClone qui permet de synchroniser des répertoires via des services de cloud tels que Dropbox, Google Drive, Amazon S3 ou sur vos propres machines / serveurs.
Je vous ai déjà également parlé de Borg et Backup Manager. Et aujourd’hui on va tester un nouveau truc qui s’appelle Restic.
Restic n’est pas vraiment un outil de synchronisation comme RClone, mais plutôt un outil qui permet de faire des sauvegardes sous forme de snapshot (object storage FTW ! ou pas).
Restic, disponible sous Linux, macOS et Windows, permet de créer dépôts soit locaux, soit distants, c’est-à-dire via SFTP, serveur REST, Amazon S3, Serveur Minio, Openstack, Backblaze B2, Azure (Blob Storage), Google Cloud Storage et également l’ensemble des services supportés par RClone.
Donc cela veut dire que vous pouvez “augmenter” Restic avec RClone pour qu’il envoie vos sauvegardes sur un Dropbox.
Enfin, niveau sécurité, Restic fonctionne avec un système de clé de chiffrement.
Comment installer Restic ?
Pour installer Restic, je vous renvoie à cette page, mais vous pouvez faire sous Ubuntu un
sudo apt install restic
ou sous macOS un
brew install restic
Je vais faire un petit tuto de mise en bouche rapide pour vous montrer comment créer un dépôt local et je vous encourage ensuite à lire la documentation qui est très claire pour faire la même chose sur des dépôts distants.
Comme créer un dépôt Restic ?
restic init --repo /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC
Restic va alors vous demander un mot de passe pour chiffrer et sécuriser votre dépôt.
Ensuite, je vais vous montrer comment créer votre premier snapshot local.
Comment faire une sauvegarde ?
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC --verbose backup ~/EMPLACEMENT/DES/FICHIERS/A/SAUVEGARDER
Sachez qu’il est possible d’exclure certains fichiers de la sauvegarde, mais également d’en agréger d’autres, situés à d’autres emplacements.
Évidemment, vous pouvez faire vos sauvegardes sur des emplacements distants (S3, Backblaze, Google Cloud…etc.). Je ne rentre pas dans les détails, et je vous invite à lire la doc.
Comment lister les snapshots ?
Pour lister toutes vos sauvegardes, faites simplement :
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC snapshots
Comment restaurer une sauvegarde avec Restic ?
Pour restaurer votre dernier backup, il suffit d’utiliser le paramètre latest.
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC restore latest --target /EMPLACEMENT/OÙ/RESTAURER/VOS/FICHIERS
Et pour remonter un peu plus loin dans le temps, avec un snapshot spécifique, il suffit d’indiquer son ID comme ceci :
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC ID-DU-SNAPSHOT latest --target /EMPLACEMENT/OÙ/RESTAURER/VOS/FICHIERS
Comment supprimer un snapshot ?
Vous pouvez déjà “l’oublier” avec le paramètre “forget”.
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC forget ID-DU-SNAPSHOT
Mais attention, cela ne supprimera pas tout de suite les fichiers liés dans l’object storage. Pour vraiment purger les snapshots retirés, il faudra utiliser la commande “prune”.
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC prune
Vous pouvez évidemment combiner ces paramètres, mais également mettre en place une politique automatisée de purge. Je vous invite à lire cette page pour plus d’infos.
Comment lister les autorisations d’accès aux dépôts ?
Et bien il suffit de faire un petit :
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC key list
Comment ajouter ou supprimer une autorisation ?
Pour cela, vous pouvez utiliser le paramètre “add” :
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC add
ou “remove”
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC remove
ou encore “passwd” pour modifier un mot de passe.
restic -r /EMPLACEMENT/DE/VOTRE/DEPOT/RESTIC passwd
Et après ?
Et bien maintenant que vous avez les bases, y’a plus qu’à automatiser tout ça à grand coup de CRON ou de scripts pour que vos sauvegardes se passent d’intervention humaine. Pensez quand même à faire des tests de restauration de temps en temps.