Restic

Mis à jour le vendredi 22 juillet 2022 par johackim

Pour sauvegarder des données sous Linux, il existe restic en tant que logiciel de backups.

Restic peut sauvegarder des données sur différent backends :

  • Buckets S3 (minio, scaleway, AWS, etc...)
  • SFTP
  • Local
  • Etc...

Et si vous souhaitez plus de backends (Nextcloud, Dropbox, OVH, etc...), il est possible de coupler restic avec Rclone.

Installation

Pour installer restic sous Debian ou Ubuntu :

apt update && apt install -y restic

Sur Arch Linux :

sudo pacman -S restic

Ou manuellement :

export RESTIC_VERSION=0.12.1
wget https://github.com/restic/restic/releases/download/v$RESTIC_VERSION/restic_${RESTIC_VERSION}_linux_amd64.bz2
bzip2 -d restic_${RESTIC_VERSION}_linux_amd64.bz2
mv restic_${RESTIC_VERSION}_linux_amd64 /bin/restic
chmod +x /bin/restic

Lancer une sauvegarde

Voici un exemple avec une sauvegarde du dossier ~/ vers un bucket S3 de chez Scaleway :

# ~/.aws/credentials
[default]
aws_access_key_id = <AWS_ACCESS_KEY_ID>
aws_secret_access_key = <AWS_SECRET_ACCESS_KEY>
restic -r s3:s3.fr-par.scw.cloud/<bucket_name> init
restic -r s3:s3.fr-par.scw.cloud/<bucket_name> backup ~/

Il est possible de facilement automatiser la sauvegarde via une tâche cron :

# Sauvegarde du dossier ~/ chaque jour à minuit
0 0 * * * RESTIC_PASSWORD=<PASSWORD> restic -r s3:s3.fr-par.scw.cloud/<bucket_name> backup ~/

Consulter les sauvegardes

restic -r <remote> snapshots

Restaurer une sauvegarde

restic -r <remote> restore <id> --target <folder>

Restaurer un fichier spécifique

restic -r <remote> restore <id> --include <file_path> --target <folder>

Monter une sauvegarde

Pour monter une sauvegarde restic sur un dossier :

restic -r <remote> mount <folder>

Libérer de l'espace

Pour libérer de l'espace :

restic -r <remote> forget --keep-within 30d
restic -r <remote> prune

Mettre à jour restic

Pour mettre à jour restic :

restic self-update

Débloquer l'accès

Si pour une raison ou une autre votre accès est bloqué, exécuter la commande suivante :

kill <pid>
restic -r <remote> unlock

Mettre à jour le mot de passe d'un repository

restic -r <remote> key list
restic -r <remote> key add