| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| restic [Le 18/02/2026, 18:38] – lien SFTP krodelabestiole | restic [Le 07/07/2026, 07:28] (Version actuelle) – [Wrappers] réorganisation krodelabestiole |
|---|
| |
| Il permet de sauvegarder sur : | Il permet de sauvegarder sur : |
| * un système de fichiers local | * un [[:système de fichiers]] local (traditionnellement un [[:SSD]] ou un [[:disque dur]], connecté en [[wpfr>NVM_Express|NVMe]], [[wpfr>Serial_ATA|SATA]], ou en [[wpfr>USB]]) |
| * [[:SFTP]] ([[:SSH]]) | * [[:SFTP]] ([[:SSH]]) |
| * [[https://github.com/restic/rest-server|serveur HTTP REST]] | * [[https://github.com/restic/rest-server|serveur HTTP REST]] |
| * etc. | * etc. |
| |
| Il s'utilise initialement en ligne de commande mais il existe diverses [[#interfaces graphiques]]. | Il s'utilise initialement en [[#utilisation|ligne de commande]] mais il existe diverses [[#interfaces graphiques]].\\ |
| | Par ailleurs certaines applications (à commencer par [[:deja-dup|Déjà Dup]]) utilisent **restic** comme "moteur", en arrière-plan. On parle pour celles-ci de //[[#wrappers]]// **restic**. |
| |
| Il est relativement proche de [[:borgbackup|Borg Backup]] d'un point de vue utilisation et performances, mais ne nécessite aucun logiciel côté dépôt (serveur), ce qui le rend particulièrement versatile. Il utilise aussi son propre format de fichier ce qui a l'inconvénient de ne pas rendre les fichiers stockés dans les dépôts accessibles avec n'importe quel outil, mais qui a aussi et surtout l'avantage de permettre le chiffrement, la compression, la déduplication, et la sauvegarde des permissions et dates des fichiers quel que soit le système de fichier sous-jacent ou le protocole d'échange utilisé. | **Restic** est relativement proche de [[:borgbackup|Borg Backup]] d'un point de vue utilisation et performances, mais ne nécessite aucun logiciel côté dépôt (serveur), ce qui le rend particulièrement versatile. Il utilise aussi son propre format de fichier ce qui a l'inconvénient de ne pas rendre les fichiers stockés dans les dépôts accessibles avec n'importe quel outil, mais qui a aussi et surtout l'avantage de permettre le chiffrement, la compression, la déduplication, et la sauvegarde des permissions et dates des fichiers quel que soit le système de fichier sous-jacent ou le protocole d'échange utilisé. |
| |
| <note warning> | <note warning> |
| ==== Restauration ==== | ==== Restauration ==== |
| |
| La commande ''[[https://restic.readthedocs.io/en/stable/050_restore.html|restic restore]]'' permet de restaurer n'importe quel instantané précis à l'emplacement de son choix. | Il existe plusieurs méthodes pour restaurer des données : |
| | * La commande ''[[https://restic.readthedocs.io/en/stable/050_restore.html|restic restore]]'' permet de restaurer n'importe quel instantané précis à l'emplacement de son choix, voir [[#Si l'arborescence originale correspond à l'arborescence actuelle|ci-dessous]]. |
| | * En utilisant la fonctionnalité de [[#montage]] présentée ci-dessus, on peut aussi copier précisément n'importe quel contenu à restaurer, depuis un répertoire monté vers un répertoire local, avec n'importe quelle technique de copie ou [[:gestionnaire de fichiers]], tel que **[[:nautilus|GNOME Fichiers]]**. |
| | * La commande ''[[https://restic.readthedocs.io/en/stable/050_restore.html#printing-files-to-stdout|restic dump]]'' décrite [[#explorer_les_sauvegardes|au-dessus]] permet d'afficher le contenu d'un fichier, ponctuellement, et de copier-coller depuis celui-ci. |
| | |
| | <note>Si possible, voir aussi la [[https://restic.readthedocs.io/en/stable/050_restore.html|documentation officielle]] en anglais à ce sujet.</note> |
| | |
| | === Si l'arborescence originale correspond à l'arborescence actuelle === |
| |
| <code>restic -r sftp:serveur:/chemin/restic-repo restore identifiant_instantané --target /chemin</code> | <code>restic -r sftp:serveur:/chemin/restic-repo restore identifiant_instantané --target /chemin</code> |
| |
| Par exemple si on sauvegarde depuis la [[:arborescence#racine]] ''/'', et qu'on souhaite seulement restaurer le répertoire ''/home'' et son contenu : | Par exemple si on sauvegarde depuis la [[:arborescence#racine]] ''/'', et qu'on souhaite seulement restaurer le répertoire ''/home'' et son contenu : |
| <code>restic -r sftp:serveur:/chemin/restic-repo restore identifiant_instantané --target / --include /home</code> | <code>restic -r sftp:serveur:/chemin/restic-repo restore 12345678 --target / --include /home</code> |
| |
| On peut ainsi restaurer seulement un répertoire et son contenu. | On peut ainsi restaurer seulement un répertoire et son contenu. |
| |
| <note> | === Si l'arborescence originale diffère de l'arborescence actuelle === |
| En utilisant la fonctionnalité de [[#montage]] présentée ci-dessus, on peut aussi copier précisément n'importe quel contenu à restaurer, depuis un répertoire monté vers un répertoire local, avec n'importe quelle technique de copie ou [[:gestionnaire de fichiers]], tel que **[[:nautilus|GNOME Fichiers]]**. | |
| </note> | Si le chemin utilisé pour la sauvegarde diffère du chemin sur lequel on souhaite restaurer les données, on peut aussi spécifier le chemin à restaurer après l'identifiant de l'instantané, séparé par deux points '':''. |
| | |
| | Par exemple pour restaurer un répertoire ''/home/alice/Documents'' (à l'origine) vers ''/mnt/data/Documents'' (en destination), entrer une commande du type : |
| | <code>restic -r sftp:serveur:/chemin/restic-repo restore 12345678:/home/alice/Documents /mnt/data/Documents</code> |
| |
| ===== Interfaces graphiques ===== | ===== Interfaces graphiques ===== |
| |
| Il existe de nombreuses interfaces graphiques permettant d'utiliser et d'explorer facilement les dépôts **restic** ; | Il existe de nombreuses interfaces graphiques permettant d'utiliser et d'explorer facilement les dépôts **restic**. |
| |
| * [[https://github.com/emuell/restic-browser|Restic Browser]] (GTK) permet d'explorer et de restaurer les instantanés, ou de télécharger indépendamment les répertoires et fichiers qui s'y trouvent. | <note>Voir aussi [[https://github.com/rubiojr/awesome-restic?tab=readme-ov-file#apps|cette liste]] plus complète.</note> |
| * [[https://github.com/ad-on-is/resticity|Resticity]] est disponible en [[:Flatpak]] sur [[https://github.com/ad-on-is/resticity/releases|GitHub]]. Plus complet il permet en plus d'effectuer des sauvegardes, et de les programmer. | |
| * [[https://github.com/netinvent/npbackup|NetPerfect Backup]] (version [[https://github.com/netinvent/npbackup/releases|npbackup-gui]]) est une interface [[:Python]] très complète. | |
| * [[https://github.com/GPh83/resticterm|resticterm]] : une interface graphique en [[:terminal]] (particulièrement pratique pour les serveurs ou les machines distantes). | |
| * [[https://github.com/garethgeorge/backrest|Backrest]] est une application [[:web]] très complète, qui permet d'automatiser les sauvegardes, gérer dépôts, instantanés et fichiers sauvegardés, etc. depuis un [[:navigateur]] (donc aussi particulièrement pratique pour les serveurs ou les machines distantes). Son installation peut s'avérer technique, c'est pourquoi il est recommandé d'utiliser l'image [[:docker]]. | |
| * [[:deja-dup|Déjà Dup]] (GTK) : Installé par défaut sur Ubuntu, particulièrement bien intégré à [[:GNOME]] et particulièrement simple d'utilisation, mais fonctionnalités assez limitées. Les dernières versions reposent sur **restic** (et plus sur [[:Duplicity]]), mais ceci est très transparent pour l'utilisateur (il est inutile d'installer ou de configurer **restic** soi-même en utilisant **Déjà Dup**). | |
| |
| Voir [[https://github.com/rubiojr/awesome-restic?tab=readme-ov-file#apps|cette liste]] plus complète. | ==== Applications ==== |
| | |
| | * **[[https://github.com/emuell/restic-browser|Restic Browser]]** (GTK) permet d'explorer et de restaurer les instantanés, ou de télécharger indépendamment les répertoires et fichiers qui s'y trouvent. |
| | * **[[https://github.com/ad-on-is/resticity|Resticity]]** est disponible en [[:Flatpak]] sur [[https://github.com/ad-on-is/resticity/releases|GitHub]]. Plus complet il permet en plus d'effectuer des sauvegardes, et de les programmer. |
| | * **[[https://github.com/netinvent/npbackup|NPBackup]]** (version **[[https://github.com/netinvent/npbackup/releases|npbackup-gui]]**) est une interface [[:Python]] très complète. |
| | |
| | ==== Terminal ==== |
| | |
| | * **[[https://github.com/GPh83/resticterm|resticterm]]** : une interface graphique en [[:terminal]] (particulièrement pratique pour les serveurs ou les machines distantes). |
| | |
| | ==== Web ==== |
| | |
| | * **[[https://github.com/garethgeorge/backrest|Backrest]]** est une [[:web#applications_web|application web]] très complète, qui permet d'automatiser les sauvegardes, gérer dépôts, instantanés et fichiers sauvegardés, etc. depuis un [[:navigateur]] (donc aussi particulièrement pratique pour les serveurs ou les machines distantes). Son installation peut s'avérer technique, c'est pourquoi il est recommandé d'utiliser l'image [[:docker]]. |
| |
| ===== Wrappers ===== | ===== Wrappers ===== |
| |
| Les //wrappers//((pas de traduction pertinente en français... //emballeurs// ?)) permettent d'étendre les fonctionnalités de **restic** en l'utilisant comme "moteur" sous-jacent plus ou moins visible. | Les //wrappers//((pas de traduction pertinente en français... //emballeurs// ?)) permettent d'étendre les fonctionnalités de **restic** en l'utilisant comme "moteur" sous-jacent plus ou moins visible. Ce sont généralement les solutions les plus pratiques (qu'il s'agisse de commandes ou d'interfaces graphiques). |
| | |
| | <note>Voir aussi [[https://github.com/rubiojr/awesome-restic?tab=readme-ov-file#wrappers|cette liste]] plus complète.</note> |
| | |
| | ==== Applications graphiques ==== |
| | |
| | À la différences des applications graphiques listées dans le chapitre [[#Applications|ci-dessus]], on ne peut pas (simplement) utiliser n'importe quel dépôt **restic** existant avec ces applications. Celles-ci utilisent (en arrière-plan) leurs propres implémentations spécifiques de l'outil : |
| | * **[[:deja-dup|Déjà Dup]]** (GTK) : Installé par défaut sur Ubuntu, particulièrement bien intégré à [[:GNOME]] et particulièrement simple d'utilisation, et très efficace pour un usage ordinaire. Les fonctionnalités sont cependant limitées en comparaison à ce que propose **restic**. Les dernières versions reposent en effet sur **restic** (et plus sur [[:Duplicity]]), mais ceci est très transparent pour l'utilisateur (il est inutile d'installer ou de configurer **restic** soi-même en utilisant **Déjà Dup**). |
| | * **[[https://usepluton.com|Pluton]]**(([[https://github.com/plutonhq/pluton|GitHub]])) se base sur **restic** et **[[:rclone]]** pour proposer une [[:web#applications_web|interface web]] moderne, complète, et intuitive de gestion centralisée des sauvegardes de plusieurs machines sur plusieurs destinations de stockage. |
| | |
| | ==== Extensions de la ligne de commande ==== |
| |
| * **[[https://github.com/creativeprojects/resticprofile|Resticprofile]]** complète **restic** à la perfection, en implémentant un [[https://creativeprojects.github.io/resticprofile/configuration/index.html|fichier de configuration]] pour faciliter l'usage de la ligne de commande avec **restic**. Il permet aussi de [[https://creativeprojects.github.io/resticprofile/schedules/index.html|programmer]] très facilement des sauvegardes récurrentes aux moments de son choix (en utilisant [[:systemd]] en arrière-plan, ou [[:cron]] dans le cas étonnant ou celui-ci ne serait pas disponible), et de définir une politique de [[https://creativeprojects.github.io/resticprofile/reference/profile/retention/index.html|rétention]] pour ces instantanés. Sa [[https://creativeprojects.github.io/resticprofile/index.html|documentation]] est en anglais mais vous pouvez si besoin vous aider de [[:tutoriel:resticprofile#resticprofile|notre tutoriel]]. | * **[[https://github.com/creativeprojects/resticprofile|Resticprofile]]** complète **restic** à la perfection, en implémentant un [[https://creativeprojects.github.io/resticprofile/configuration/index.html|fichier de configuration]] pour faciliter l'usage de la ligne de commande avec **restic**. Il permet aussi de [[https://creativeprojects.github.io/resticprofile/schedules/index.html|programmer]] très facilement des sauvegardes récurrentes aux moments de son choix (en utilisant [[:systemd]] en arrière-plan, ou [[:cron]] dans le cas étonnant ou celui-ci ne serait pas disponible), et de définir une politique de [[https://creativeprojects.github.io/resticprofile/reference/profile/retention/index.html|rétention]] pour ces instantanés. Sa [[https://creativeprojects.github.io/resticprofile/index.html|documentation]] est en anglais mais vous pouvez si besoin vous aider de [[:tutoriel:resticprofile#resticprofile|notre tutoriel]]. |
| * **[[https://github.com/cupcakearmy/autorestic|Autorestic]]** propose à peu près les mêmes fonctionnalités que **resticprofile**, mais sans faciliter l'usage de **restic** en ligne de commande. Il ne fonctionne que de manière déclarative - par l'usage de fichiers de configuration, de manière un peu plus directive (avoir moins de choix à disposition peut aussi permettre de simplifier la [[https://autorestic.vercel.app|documentation]]). Il facilite si besoin la gestion de dépôts multiples (par ex. pour sauvegarder sur un disque dur en même temps que sur le //[[:cloud]]//). | * **[[https://github.com/cupcakearmy/autorestic|Autorestic]]** propose à peu près les mêmes fonctionnalités que **resticprofile**, mais sans faciliter l'usage de **restic** en ligne de commande. Il ne fonctionne que de manière déclarative - par l'usage de fichiers de configuration, de manière un peu plus directive (avoir moins de choix à disposition peut aussi permettre de simplifier la [[https://autorestic.vercel.app|documentation]]). Il facilite si besoin la gestion de dépôts multiples (par ex. pour sauvegarder sur un disque dur en même temps que sur le //[[:cloud]]//). |
| |
| Voir aussi [[https://github.com/rubiojr/awesome-restic?tab=readme-ov-file#wrappers|cette liste]] plus complète. | |
| |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| * **//(en)//** [[https://restic.readthedocs.io/en/stable/|documentation]] | * **//(en)//** [[https://restic.readthedocs.io/en/stable/|documentation]] |
| * //[[:tutoriel:resticprofile|Sauvegarder sur une box Internet grâce à Restic]]// : tutoriel décrivant la mise en place de sauvegardes régulières et automatisées au moyen de **restic**, **[[:rclone]]** et **[[#wrappers|resticprofile]]**.\\ On peut l'adapter facilement pour sauvegarder sur l'un des innombrables [[https://github.com/rclone/rclone#storage-providers|services cloud et protocoles réseau]] que supporte **[[:rclone]]** ! | * //[[:tutoriel:resticprofile|Sauvegarder sur une box Internet grâce à Restic]]// : tutoriel décrivant la mise en place de sauvegardes régulières et automatisées au moyen de **restic**, **[[:rclone]]** et **[[#wrappers|resticprofile]]**.\\ On peut l'adapter facilement pour sauvegarder sur l'un des innombrables [[https://github.com/rclone/rclone#storage-providers|services cloud et protocoles réseau]] que supporte **[[:rclone]]** ! |
| | * [[:Sauvegarde]] |
| |
| ---- | ---- |
| //Contributeur : [[:utilisateurs:krodelabestiole]]// | //[[:Contributeurs]] : [[:utilisateurs:krodelabestiole]], ...// |