Aller au contenu principal

restic — sauvegardes chiffrées et dédupliquées

restic est un outil de sauvegarde moderne, écrit en Go, qui chiffre et déduplique les données et supporte de nombreux backends de stockage (local, SFTP, S3/MinIO, Backblaze B2, Azure...). Contrairement à Borg/borgmatic, il s'utilise généralement en une seule commande sans démon dédié, planifiée via cron ou un timer systemd.

Installation

sudo apt install restic
# ou binaire statique depuis les releases GitHub

# Initialiser un dépôt (obligatoire avant la première sauvegarde)
restic -r /mnt/backup/restic-repo init

Fichiers de configuration

Fichier/VariableRôle
RESTIC_REPOSITORYVariable d'environnement pointant vers le dépôt (local, sftp:, s3:...)
RESTIC_PASSWORD / RESTIC_PASSWORD_FILEPassphrase de chiffrement du dépôt
~/.config/restic/Emplacement conventionnel pour des scripts/fichiers d'environnement restic
Unit systemd + timer customrestic n'a pas de fichier de conf central : la planification passe par un .service/.timer personnalisé appelant la commande

Commandes utiles

CommandeFonction
restic initInitialiser un nouveau dépôt
restic backup /cheminSauvegarder un répertoire
restic snapshotsLister les snapshots existants
restic restore <id> --target /cheminRestaurer un snapshot
restic forget --keep-daily 7 --keep-weekly 4 --pruneAppliquer une politique de rétention
restic checkVérifier l'intégrité du dépôt

Exemple de configuration

# /etc/restic/env (source dans le service systemd)
export RESTIC_REPOSITORY="s3:https://minio.local:9000/backups"
export RESTIC_PASSWORD_FILE="/etc/restic/passphrase"
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
# /etc/systemd/system/restic-backup.service
[Unit]
Description=Sauvegarde restic

[Service]
Type=oneshot
EnvironmentFile=/etc/restic/env
ExecStart=/usr/bin/restic backup /home /etc
ExecStartPost=/usr/bin/restic forget --keep-daily 7 --keep-weekly 4 --prune

Sécurisation

  • La passphrase protège l'intégralité du dépôt chiffré : la stocker dans un fichier à permissions 600 (RESTIC_PASSWORD_FILE), jamais en clair dans un script versionné.
  • Restreindre les clés d'accès du backend (S3/MinIO) au strict nécessaire (write-only pour la sauvegarde, clé séparée pour la restauration).
  • restic check régulièrement pour détecter une corruption avant qu'elle ne devienne critique.
  • Répliquer le dépôt sur un second backend/site pour éviter un point de défaillance unique.

Logs & dépannage

journalctl -u restic-backup.service # si lancé via un unit systemd
restic snapshots # vérifier qu'un snapshot récent existe
restic check --read-data # vérification approfondie (lit toutes les données)

Voir aussi

  • borgmatic — alternative avec configuration YAML centralisée
  • minio — backend S3 auto-hébergé utilisable comme dépôt restic