Skip to content
VDS · Sauvegardes et disque

Restic : sauvegardes avec chiffrement et historique

Comment configurer des sauvegardes avec chiffrement de bout en bout, déduplication et instantanés par date, les automatiser et vérifier leur intégrité.

Mis à jour le 23 août 2026

Restic résout ce que rsync ne peut pas faire : il chiffre les données avant l'envoi, conserve un historique d'instantanés, ne copie pas deux fois les mêmes blocs et peut stocker les sauvegardes dans un stockage compatible S3. Un seul programme, sans dépendances.

Installation et premier dépôt

sudo apt install -y restic
restic version

Un dépôt, c'est l'endroit où vivent vos sauvegardes. Il peut s'agir d'un répertoire, d'une machine via SFTP ou d'un stockage objet :

export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic"
export RESTIC_PASSWORD_FILE=/root/.restic-pass

head -c 32 /dev/urandom | base64 > /root/.restic-pass
chmod 600 /root/.restic-pass
restic init

Le mot de passe du dépôt ne peut pas être récupéré. Si vous l'oubliez, vos données sont perdues — aucun support n'existe ici, par conception. Conservez-le séparément de la machine : dans un gestionnaire de mots de passe, sur papier, où vous voulez — mais pas uniquement dans le fichier /root/.restic-pass sur la machine même que vous sauvegardez.

Créer une sauvegarde

restic backup /var/www /etc/nginx /opt/myapp \
  --exclude-file=/root/restic-exclude.txt \
  --tag daily
restic snapshots
restic ls latest
restic stats

La deuxième exécution et les suivantes sont rapides : seuls les nouveaux blocs de données sont transférés.

Restaurer

restic restore latest --target /restore
restic restore <snapshot-id> --target /restore --include /var/www/uploads

Plus pratique encore : consulter le contenu sans tout décompresser.

mkdir /mnt/snapshots
restic mount /mnt/snapshots

Le répertoire affiche tous les instantanés par date sous forme de dossiers ordinaires. C'est la meilleure façon de récupérer un seul fichier supprimé par accident.

Planification et nettoyage

Le script /usr/local/bin/backup.sh :

#!/bin/bash
set -euo pipefail
export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic"
export RESTIC_PASSWORD_FILE=/root/.restic-pass

docker compose -f /opt/myapp/compose.yaml exec -T db \
  pg_dump -U postgres app | gzip > /var/backups/db.sql.gz

restic backup /var/www /etc/nginx /opt/myapp /var/backups --tag daily
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
chmod 700 /usr/local/bin/backup.sh

Vient ensuite un timer systemd, voir tâches planifiées. forget --prune supprime les instantanés superflus et libère de l'espace ; sans --prune, les instantanés disparaissent de la liste mais les données restent.

Vérifications d'intégrité

restic check
restic check --read-data-subset=5%

La première commande vérifie la structure, la seconde lit une partie des données et contrôle les sommes de contrôle. Lancez la seconde une fois par mois : elle sollicite le disque et la bande passante, mais c'est elle qui détecte les corruptions silencieuses.

Une vérification de structure ne remplace pas une vraie restauration — voir exercice de restauration.

Ressources

Restic garde un index en mémoire : sur de gros volumes de données, cela représente des centaines de mégaoctets. Sur VDS-1 avec 2 Go de RAM, sauvegarder des dizaines de gigaoctets peut manquer de place — limitez le parallélisme ou déplacez les sauvegardes lourdes d'un cran au-dessus. La charge disque est notable, planifiez donc pour la nuit : voir vitesse du disque.

Erreurs courantes

  • Le mot de passe est stocké uniquement sur la machine sauvegardée. Le classique : la machine est perdue en même temps que la clé des sauvegardes.
  • forget sans --prune. L'espace n'est pas libéré et le dépôt ne cesse de grossir.
  • Une sauvegarde dans le même répertoire sur le même disque. Vous n'aurez nulle part où restaurer — voir sauvegardes à un autre emplacement.
  • Les caches et /var/lib/docker ne sont pas exclus. La sauvegarde gonfle de quatre fois sans aucun bénéfice ; la liste de ce qu'il faut inclure se trouve dans l'article que sauvegarder.
  • Exécutions parallèles. Une seconde exécution se heurtera au verrou du dépôt. Encapsulez l'appel dans flock.