Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
restic [Le 16/12/2024, 00:30] krodelabestiole [Interfaces graphiques] +détails |
restic [Le 27/04/2025, 19:00] (Version actuelle) krodelabestiole [Wrappers] deja dup transparent |
||
---|---|---|---|
Ligne 34: | Ligne 34: | ||
<note warning> | <note warning> | ||
- | Ni **restic**, ni **Restic Browser** ne sont malheureusement traduits en français pour le moment. Il est donc compliqué de les utiliser sans maîtriser un minimum l'anglais. N'hésitez pas à demander de l'aide sur le [[https://forum.ubunut-fr.org|forum]] si besoin ! | + | Ni **restic**, ni **Restic Browser** ne sont malheureusement traduits en français pour le moment. Il est donc compliqué de les utiliser sans maîtriser un minimum l'anglais. N'hésitez pas à demander de l'aide sur le [[https://forum.ubuntu-fr.org|forum]] si besoin ! |
</note> | </note> | ||
Ligne 41: | Ligne 41: | ||
**Restic** est disponible dans les [[:depots#dépôts officiels]] d'Ubuntu.\\ | **Restic** est disponible dans les [[:depots#dépôts officiels]] d'Ubuntu.\\ | ||
Pour l'installer il suffit donc d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>restic]].** | Pour l'installer il suffit donc d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>restic]].** | ||
+ | |||
+ | ==== Dernière version ==== | ||
+ | |||
+ | Une fois installé, on peut mettre à jour le logiciel à sa dernière version stable très simplement grâce à la commande ''[[https://restic.readthedocs.io/en/stable/020_installation.html#packages|self-update]]'' : | ||
+ | <code>sudo restic self-update</code> | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
Ligne 50: | Ligne 55: | ||
Dans le cadre de l'utilisation native de **restic**, on peut afficher la liste des commandes disponibles en tapant simplement ''restic'' dans un [[:terminal]]. | Dans le cadre de l'utilisation native de **restic**, on peut afficher la liste des commandes disponibles en tapant simplement ''restic'' dans un [[:terminal]]. | ||
- | **Restic** permet de réaliser toutes sortes d'opérations mais on utilisera principalement ''init'' la première configuration, puis régulièrement la commande ''backup'' pour déclencher les sauvegardes (ou instantanés / //snapshots//). | + | **Restic** permet de réaliser toutes sortes d'opérations mais on utilisera principalement ''init'' pour créer un dépôt lors de la première configuration, puis régulièrement la commande ''backup'' pour déclencher chaque sauvegarde. Comme on peut conserver plusieurs versions des fichiers sauvegardés à différents moments (voir [[wpfr>Sauvegarde_(informatique)#Sauvegarde_incrémentielle_ou_incrémentale|sauvegarde incrémentielle]]), pour désigner les sauvegardes en parle aussi d'**instantanés** (ou **//snapshots//** en anglais). |
Le paramètre ''-r'' (ou ''%%--%%repo'' en version longue) est très important : il permet de spécifier le dépôt (//**R**epository// en anglais) sur lequel on souhaite travailler. | Le paramètre ''-r'' (ou ''%%--%%repo'' en version longue) est très important : il permet de spécifier le dépôt (//**R**epository// en anglais) sur lequel on souhaite travailler. | ||
Ligne 73: | Ligne 78: | ||
C'est la commande ''[[https://restic.readthedocs.io/en/stable/040_backup.html|restic backup]]'' qui permet de délencher une sauvegarde. | C'est la commande ''[[https://restic.readthedocs.io/en/stable/040_backup.html|restic backup]]'' qui permet de délencher une sauvegarde. | ||
- | En ligne de commande, **restic** s'utilise un peu comme [[:rsync]] ou [[:rClone]]. | + | En ligne de commande, **restic** s'utilise un peu comme [[:rsync]] ou [[:rclone]]. |
<code>restic -r sftp:serveur:/chemin/restic-repo backup /chemin</code> | <code>restic -r sftp:serveur:/chemin/restic-repo backup /chemin</code> | ||
Ligne 79: | Ligne 84: | ||
Commande à adapter comme ''init'' précédemment : | Commande à adapter comme ''init'' précédemment : | ||
* ''-r'' pour spécifier le dépôt sur lequel on souhaite travailler. | * ''-r'' pour spécifier le dépôt sur lequel on souhaite travailler. | ||
- | * Le ''/chemin'' est celui du répertoire à sauvegarder. | + | * Le dernier ''/chemin'' est celui du répertoire à sauvegarder. |
- | * On peut utiliser l'option ''[[https://restic.readthedocs.io/en/stable/040_backup.html#excluding-files|--exclude]]'' pour exclure certains fichiers ou répertoires | + | * On peut utiliser l'option ''[[https://restic.readthedocs.io/en/stable/040_backup.html#excluding-files|--exclude]]'' pour exclure certains fichiers ou répertoires, |
* et l'option ''[[https://restic.readthedocs.io/en/stable/040_backup.html#dry-runs|--dry-run]]'' pour lancer un test sans effectuer réellement la sauvegarde. | * et l'option ''[[https://restic.readthedocs.io/en/stable/040_backup.html#dry-runs|--dry-run]]'' pour lancer un test sans effectuer réellement la sauvegarde. | ||
- | La première fois qu'on lance cette commande, l'intégralité des données et compressée et sauvegardée. Par la suite avec la même commande on ne transfère que les données qui ont été modifiées, c'est donc beaucoup plus rapide. | + | La première fois qu'on lance cette commande, l'intégralité des données est compressée et sauvegardée. Par la suite avec la même commande on ne transfère que les données qui ont été modifiées, c'est donc beaucoup plus rapide. |
- | ==== Lister les sauvegardes ==== | + | ==== Explorer les sauvegardes ==== |
- | La commande ''[[https://restic.readthedocs.io/en/stable/045_working_with_repos.html#listing-all-snapshots|snapshots]] '' permet de lister les instantanés : | + | La commande ''[[https://restic.readthedocs.io/en/stable/045_working_with_repos.html#listing-all-snapshots|restic snapshots]]'' permet de lister les instantanés : |
<code>restic -r sftp:serveur:/chemin/restic-repo snapshots</code> | <code>restic -r sftp:serveur:/chemin/restic-repo snapshots</code> | ||
- | Cette commande retourne un tableau dont la première colonne affiche l'identifiant de chaque instantané. | + | Cette commande retourne un tableau dont la première colonne indique l'**identifiant** de chaque instantané. |
+ | |||
+ | On peut explorer les sauvegardes en [[#montage|montant le dépôt]], ou avec une [[#interfaces graphiques|interface graphique]] telle que [[https://github.com/emuell/restic-browser|Restic Browser]], ou avec la commande ''[[:tutoriel:console_ligne_de_commande#ls]]'' qu'implémente **restic** : | ||
+ | <code>restic -r sftp:serveur:/chemin/restic-repo ls latest /</code> | ||
+ | * On peut remplacer le mot clé ''latest'' (pour explorer le dernier instantané) par un identifiant récupéré grâce à la commande ''[[https://restic.readthedocs.io/en/stable/045_working_with_repos.html#listing-all-snapshots|snapshots]]'' précédente. | ||
+ | * ''/'' est le répertoire qu'on souhaite lister, ici la racine de cette sauvegarde. Ne pas indiquer de chemin permet de lister l'intégralité des fichiers sauvegardés où qu'ils se trouvent dans cet instantané. | ||
+ | |||
+ | À partir de la version **0.17** il est possible d'utiliser la commande ''[[:analyseur_usage_espace_disque#ncdu]]'' (après avoir [[:tutoriel:comment_installer_un_paquet|installé localement le paquet]] ''[[apt>ncdu]]'') pour explorer l'espace occupé par chaque répertoire dans un instantané : | ||
+ | <code>restic -r sftp:serveur:/chemin/restic-repo ls latest --ncdu | ncdu -f -</code> | ||
==== Restauration ==== | ==== Restauration ==== | ||
Ligne 98: | Ligne 111: | ||
<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> | ||
- | * L%%'%%''identifiant_instantané'' est un numéro à 8 chiffres hexadécimaux, récupérés en listant les sauvegardes à l'étape précédente. | + | * 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 chapitre précédent). |
- | * Le ''/chemin'' n'est ici pas forcément celui du contenu sauvegardé, mais celui vers lequel on veut restaurer la sauvegarde. | + | * Le ''/chemin'' n'est ici pas celui du contenu sauvegardé, mais celui vers lequel on veut restaurer la sauvegarde. |
On peut ainsi restaurer n'importe quelle sauvegarde à l'emplacement de son choix. | On peut ainsi restaurer n'importe quelle sauvegarde à l'emplacement de son choix. | ||
+ | |||
+ | === Montage === | ||
+ | |||
+ | On peut aussi monter l'intégralité d'un dépôt en système local grâce à [[:FUSE]] afin d'explorer ses sauvegardes avec le [[:gestionnaire de fichiers]] de son choix, à commencer par [[:nautilus|GNOME Fichiers]] sur Ubuntu. | ||
+ | |||
+ | Il faut pour cela créer un répertoire - ici ''/mnt/restic'' - et s'autoriser à le modifier : | ||
+ | sudo mkdir /mnt/restic | ||
+ | sudo chown $USER:$GROUP /mnt/restic | ||
+ | |||
+ | C'est ensuite la commande ''[[https://restic.readthedocs.io/en/stable/050_restore.html#restore-using-mount|restic mount]]'' qui nous permettra de monter le dépôt : | ||
+ | restic -r sftp:serveur:/chemin/restic-repo mount /mnt/restic | ||
+ | |||
+ | Après quelques secondes, sous le chemin ''/mnt/restic'' devraient se trouver les répertoires suivants : | ||
+ | * ''hosts'' contient la liste des instantanés triés par **noms d'hôtes** sauvegardés, | ||
+ | * ''ids'' contient la liste des instantanés triés par **identifiant** (voir § [[#Explorer les sauvegardes]]), | ||
+ | * ''snapshots'' les liste par date, | ||
+ | * ''tags'' (//étiquettes// en français) est utile si on utilise [[https://restic.readthedocs.io/en/stable/manual_rest.html#manage-tags|cette fonctionnalité]]. | ||
+ | |||
+ | Vous pouvez ainsi explorer vos sauvegardes avec l'outil de votre choix et copier-coller n'importe quel contenu pour le restaurer où vous voulez. | ||
+ | |||
+ | Pour terminer le montage, appuyez sur la touche ''C'' en laissant enfoncé la touche ''Ctrl'' dans la fenêtre de terminal que vous venez d'utiliser. | ||
===== Interfaces graphiques ===== | ===== Interfaces graphiques ===== | ||
Ligne 107: | Ligne 141: | ||
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 de restaurer les instantanés, ou de télécharger les répertoires en fichiers qui s'y trouvent de son choix. | + | * [[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/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/netinvent/npbackup|NetPerfect Backup]] (version [[https://github.com/netinvent/npbackup/releases|npbackup-gui]]) est une interface [[:Python]] très complète. | ||
Ligne 120: | Ligne 154: | ||
Les //wrappers//((pas de traduction tangible en français... emballage ?)) permettent d'étendre les fonctionnalités de **restic** en l'utilisant comme "moteur" sous-jacent plus ou moins visible. | Les //wrappers//((pas de traduction tangible en français... emballage ?)) permettent d'étendre les fonctionnalités de **restic** en l'utilisant comme "moteur" sous-jacent plus ou moins visible. | ||
- | * C'est le cas de **[[:deja-dup|Déjà Dup]]**, installé par défaut sur Ubuntu, dont les toutes dernières versions permettent de reposer sur **restic** plutôt que sur [[:Duplicity]], mais ceci reste très transparent pour l'utilisateur. | + | * C'est le cas de **[[:deja-dup|Déjà Dup]]**, installé par défaut sur Ubuntu, dont 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**). |
- | * **[[https://github.com/creativeprojects/resticprofile|Resticprofile]]** permet de créer un [[https://creativeprojects.github.io/resticprofile/configuration/index.html|fichier de configuration]] pour faciliter l'usage de la ligne de commande avec **restic**. La [[https://creativeprojects.github.io/resticprofile/index.html|documentation]] n'existe malheureusement aussi qu'en anglais. **resticprofile** 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). | + | * **[[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 de manière un peu plus directive (avoir moins de choix à disposition peut aussi permettre de simplifier la [[https://autorestic.vercel.app|documentation]]) et facilite en plus 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 [[https://github.com/rubiojr/awesome-restic?tab=readme-ov-file#wrappers|cette liste]] plus complète. | ||
Ligne 130: | Ligne 164: | ||
* **//(en)//** [[https://github.com/restic/restic|sources et site officiel]] | * **//(en)//** [[https://github.com/restic/restic|sources et site officiel]] | ||
* **//(en)//** [[https://restic.readthedocs.io/en/stable/|documentation]] | * **//(en)//** [[https://restic.readthedocs.io/en/stable/|documentation]] | ||
+ | * tutoriel décrivant l'utilisation de **[[:rclone]]** et **resticprofile** : [[:tutoriel:resticprofile|Sauvegarder sur une box Internet grâce à Restic]] | ||
---- | ---- | ||
//Contributeur : [[:utilisateurs:krodelabestiole]]// | //Contributeur : [[:utilisateurs:krodelabestiole]]// |