| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| restic [Le 26/02/2026, 01:41] – [Restauration] réécriture - développement krodelabestiole | restic [Le 03/09/2026, 19:41] (Version actuelle) – [Restauration] --target obligatoire | +autres options et exclude 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 ==== |
| |
| Il existe plusieurs méthodes pour restaurer des données : | 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]]. | * 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 [[#restic restore|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]]**. | * 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. | * 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> | <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 === | === restic restore === |
| |
| <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é:/chemin/à/restaurer --target /chemin/vers/lequel/restaurer</code> |
| |
| * L%%'%%''identifiant_instantané'' est un numéro à 8 chiffres hexadécimaux, récupéré en listant les sauvegardes avec la commande ''[[https://restic.readthedocs.io/en/stable/045_working_with_repos.html#listing-all-snapshots|snapshots]]'' (voir [[#Explorer les sauvegardes|chapitre précédent]]). | * L%%'%%''identifiant_instantané'' est le terme ''latest'', ou un numéro à 8 chiffres hexadécimaux récupéré en listant les sauvegardes avec la commande ''[[https://restic.readthedocs.io/en/stable/045_working_with_repos.html#listing-all-snapshots|snapshots]]'' (voir [[#Explorer les sauvegardes|chapitre précédent]]). |
| | * On peut ainsi restaurer seulement un répertoire et son contenu, mais on peut aussi supprimer '':/chemin/à/restaurer'' si on souhaite restaurer l'intégralité de la sauvegarde. |
| | * L'option ''-t'' ou ''%%--%%target'' indiquant le ''/chemin/vers/lequel/restaurer'' est obligatoire. On peut par exemple indiquer ''.'' pour le répertoire courant (voir //[[:Chemins]]//). |
| | * Il existe aussi de nombreuses autres options, comme ''-e'' ou ''%%--%%exclude'' permettant d'exclure des fichiers ou répertoires particuliers (voir si besoin le [[man>restic-restore|manuel]]). |
| |
| * Le ''/chemin'' de l'option ''%%--%%target'' n'est pas celui du contenu sauvegardé, mais celui vers lequel on veut restaurer la sauvegarde.\\ Si on souhaite restaurer un contenu "sur place" (à l'endroit d'où il vient, pour le rétablir à une version précédente), on indique avec l'option ''%%--%%target'' le chemin du champs ''Path'' tel que renseigné dans la [[#explorer_les_sauvegardes|liste des snapshots]] (celui-ci correspond à la //source// de la sauvegarde telle qu'on l'a configurée lors de sa [[#sauvegarde|mise en place]]). | 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 --target /mnt/data/Documents</code> |
| |
| Pour restaurer un répertoire en particulier on peut utiliser l'option ''%%--%%include''. | ===== Interfaces graphiques ===== |
| |
| Par exemple si on sauvegarde depuis la [[:arborescence#racine]] ''/'', et qu'on souhaite seulement restaurer le répertoire ''/home'' et son contenu : | Il existe de nombreuses interfaces graphiques permettant d'utiliser et d'explorer facilement les dépôts **restic**. |
| <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. | <note>Voir aussi [[https://github.com/rubiojr/awesome-restic?tab=readme-ov-file#apps|cette liste]] plus complète.</note> |
| |
| === Si l'arborescence originale diffère de l'arborescence actuelle === | ==== Applications ==== |
| |
| 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 '':''. | * **[[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. |
| |
| Par exemple pour restaurer un répertoire ''/home/alice/Documents'' (à l'origine) vers ''/mnt/data/Documents'' (en destination), entrer une commande du type : | ==== Terminal ==== |
| <code>restic -r sftp:serveur:/chemin/restic-repo restore 12345678:/home/alice/Documents /mnt/data/Documents</code> | |
| |
| ===== Interfaces graphiques ===== | * **[[https://github.com/GPh83/resticterm|resticterm]]** : une interface graphique en [[:terminal]] (particulièrement pratique pour les serveurs ou les machines distantes). |
| |
| Il existe de nombreuses interfaces graphiques permettant d'utiliser et d'explorer facilement les dépôts **restic** ; | ==== Web ==== |
| |
| * [[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/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]]. |
| * [[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. | |
| |
| ===== 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]], ...// |