restic
À quoi il sert
restic, écrit en Go, sauvegarde des fichiers ou un flux (un export de base de données) dans un dépôt qui peut être un répertoire local, un serveur SFTP ou un bucket compatible S3 comme Object Storage Scaleway. Tout est chiffré côté client (AES-256 et Poly1305) avec une clé maîtresse protégée par le mot de passe du dépôt ; les fichiers sont découpés en morceaux selon leur contenu, et un morceau déjà présent n'est jamais stocké deux fois. Chaque instantané est logiquement complet, sans chaîne d'incrémentales à rejouer. Les commandes de base : init, backup, snapshots, forget --prune (rétention), check (vérification), restore, mount et dump.
Quand le choisir
Pour sauvegarder des serveurs vers un stockage objet sans administrer de serveur de sauvegarde : chaque machine pousse vers son dépôt, et le fournisseur ne voit que des données chiffrées. Son alternative principale, BorgBackup, sauvegarde par SSH vers un serveur qui exécute borg serve et offre un mode append-only imposé côté serveur, mais Borg 1.x n'écrit pas directement dans S3. Pour une simple copie d'arborescence, rsync suffit ; pour une base PostgreSQL managée, les sauvegardes du service et pg_dump passent avant.
Points d'attention
- Mot de passe perdu, dépôt perdu : aucune récupération n'existe, par conception. Conservez-le dans un gestionnaire de secrets, hors du serveur sauvegardé.
- Préférez
RESTIC_PASSWORD_FILEàRESTIC_PASSWORD, qui exposerait le secret dans l'environnement des processus enfants. - Les versions diffèrent : Ubuntu 24.04 fournit la 0.16.4, Debian 13 la 0.18.0.
--stdin-from-command(qui n'enregistre rien si la commande échoue, contrairement àpg_dump | restic backup --stdin),restore --overwriteetrestore --deletedatent de la 0.17. - restic doit pouvoir lister, lire, écrire et supprimer : il ne fonctionne pas avec une clé en écriture seule. Contre un rançongiciel, combinez versionnage du bucket, clé sans droit de suppression de version, et une copie dans une autre organisation (
restic copy). forgetsans--prunene libère pas de place ; essayez d'abord avec--dry-run.checkseul ne relit pas les données : ajoutez régulièrement--read-data-subset.- Un verrou périmé après un arrêt brutal se retire par
restic unlock, après avoir vérifié qu'aucune sauvegarde ne tourne. - Une sauvegarde n'existe que si sa restauration a été essayée : surveillez l'âge du dernier instantané réussi et restaurez régulièrement.
Par où commencer
La leçon Sauvegarder et restaurer un serveur du cours Linux : administration système, qui sauvegarde sig-outils vers Object Storage Scaleway, protège le dépôt contre un rançongiciel et reconstruit sig-app-2 à partir des sauvegardes. La leçon Borner les ressources : limites et cgroups montre comment éviter qu'une sauvegarde soit tuée par manque de mémoire. Puis la documentation officielle, notamment les pages sur la préparation d'un dépôt, la suppression d'instantanés et le format du dépôt.