Journal resticterm une interface pour restic

Posté par  . Licence CC By‑SA.
Étiquettes :
19
28
avr.
2021

Bonjour,

Certains d’entre vous connaissent probablement restic : https://restic.net/
Pour les autres et en faisant court, je dirais : restic est à la sauvegarde ce que GIT est à la programmation.

C'est un très bon outil de sauvegarde, multi-plateformes et qui gère plusieurs type de stockage (Local/SSH/Cloud).
Il s'utilise exclusivement en ligne de commande.

Pour la sauvegarde, ce n'est pas gênant car c'est souvent scripté.
Mais pour consulter le contenu et faire les opérations de gestion courante c'est plus lourd.

Ce constat m'a amené à me lancer dans l'aventure de l'Open Source en faisant une interface pour restic : resticterm
C'est une interface console multi-plateforme qui est une surcouche de restic.
Ce qui fait que c'est utilisable de manière mixte (ligne de commande/UI) sur des repos existants.
Mais aussi cela permet de l'utiliser comme un programme de sauvegarde à lui seul pour des utilisations simples.

Je soumets ça à votre curiosité et si quelques personnes veulent tester et me donner leur avis, j'en serais reconnaissant :-)

C'est accessible sur GitHub : https://github.com/GPh83/resticterm
La package est téléchargeable là : Package V0.4

Merci.

L'aspect ?

resticterm screen

  • # Premier test

    Posté par  (site web personnel) . Évalué à 6. Dernière modification le 29 avril 2021 à 15:41.

    Une interface est une bonne idée, surtout comme tu l'as indiqué, pour effectuer une restauration. Ce qui serait encore mieux serait de faire une interface graphique "Michu compliant" :-)

    J'ai testé, ça fonctionne bien, voici ce que j'ai vu :

    • typo à la 1ere exécution "not define" => "not defined"
    • le curseur est difficilement visible dans le formulaire de saisie des paramètres (Windows Terminal / Powershell)
    • à quoi correspond l'option "use master password" ?
    • le chemin du repository est fixe, comment gérer le cas d'une sauvegarde sur deux disques amovibles qui n'utilisent pas la même lettre de lecteur/point de montage ?
    • le programme ne propose pas de créer le repo s'il n'existe pas
    • lors de la sauvegarde il pourrait afficher le nombre de fichiers à sauvegarder et leur taille
    • il se fige s'il n'y a plus d'espace libre à l'emplacement de sauvegarde
    • dans la liste des fichiers d'une sauvegarde ce serait bien d'avoir une fonction de recherche
    • lors de la restauration à quoi sert le champ "save as" ?
    • ce serait bien d'avoir plusieurs configs différentes (j'utilise plusieurs repos selon le type de fichiers et la fréquence de sauvegarde)

    Je peux créer des ticket GitHub pour ces points si tu veux.

    • [^] # Re: Premier test

      Posté par  . Évalué à 4.

      à quoi correspond l'option "use master password" ?

      sans connaitre le logiciel, je dirais que c'est un mot de passe "maitre" sur le logiciel, pour protéger ensuite les mots de passe individuels dans les configs

      tu as la meme notion avec firefox, et avec des gestionnaires de trousseau de mot de passe (keepass par exemple)

      lors de la restauration à quoi sert le champ "save as" ?

      à preciser le nom du fichier que tu veux restaurer pardi,
      non ?

    • [^] # Re: Premier test

      Posté par  . Évalué à 4. Dernière modification le 29 avril 2021 à 18:09.

      Merci pour le retour précis, ça fait plaisir.

      • Pour Mme Michu, j'ai fait l'impasse je l'avoue.
        Le but était que ça soit multiplateforme et avec .NET je n'ai pas de graphique sous Linux.
        Mais surtout, je voulais pouvoir l'utiliser à travers SSH sur des serveurs distants.

      • Pour le multi dossier/config j'y ai pensé mais ce n'est la priorité, cela peut faire un ticket d'évolution.

      • La création du repo existe dans Tools. Effectivement je n'ai pas automatisé la création à la première utilisation. C'est faisable.

      • Le nombre de fichiers avant la sauvegarde est faisable aussi mais ça peut être long je ne sais pas si c'est vraiment indispensable. A réfléchir.

      • Figé sur espace plein, le ticket s'impose. Je n'ai pas testé ce cas.

      • Pour la recherche de fichier, je le note dans le TODO. Une recherche dans les snapshot pourrait aussi avoir du sens. Mais quand le projets aura muri un peu.

      • Le champ Save as n'est pas utile car je n'utilise que le dossier lors de la restauration. C'est un objet prêt à l'emploi du SDK. Je ferais peut être ma propre version pour ne faire que le dossier.

      • Pour le master password, effectivement cela permet de protéger les mots de passe avec un mot de passe personnel non stocké.

      Merci.

      • [^] # Re: Premier test

        Posté par  (site web personnel) . Évalué à 2.

        Le but était que ça soit multiplateforme et avec .NET je n'ai pas de graphique sous Linux.

        Je ne connais pas .net mais est ce que ne sera pas possible avec .net Core ?

        Mais surtout, je voulais pouvoir l'utiliser à travers SSH sur des serveurs distants.

        Ah je comprends mieux ton choix.

        Le nombre de fichiers avant la sauvegarde est faisable aussi mais ça peut être long je ne sais pas si c'est vraiment indispensable.

        Je pensais que tu pourrais récupérer l'info affichée par restic :

        C:\>restic backup -r E:\temp\backup-music M:\Qobuz
        repository 5f5ca509 opened successfully, password is correct
        no parent snapshot found, will read all files
        [1:52] 1.86%  147 files 2.089 GiB, total 4787 files 112.322 GiB, 0 errors ETA 1:38:49 
        

        L'info est affichée après total mais n'est valable qu'à partir du moment où ETA est aussi affiché puisque restic démarre la sauvegarde avant d'avoir la liste complète des fichiers à sauvegarder. Il serait également intéressant d'avoir l'ETA et le nombre d'erreurs.

        • [^] # Re: Premier test

          Posté par  . Évalué à 3. Dernière modification le 29 avril 2021 à 21:27.

          Je ne connais pas .net mais est ce que ne sera pas possible avec .net Core ?

          C'est écrit en .NET 5 qui est le remplaçant de .NET Core. Sa vocation est d'avoir un seul langage pour toutes les plateformes.
          C'est vrai pour le langage mais pas pour les interface graphiques.
          La lisibilité de Microsoft n'est pas terrible sur le sujet.
          Il y a Xamarin pour Android et MAC, WPF pour Windows et rien pour Linux.

          Je pensais que tu pourrais récupérer l'info affichée par restic

          Je récupère les infos de restic mais quand la sauvegarde est lancée.
          Je pensais que tu voulais dire avoir un aperçu de ce qui va être sauvegardé.

          Il y a le bargraph et le nombre de fichiers qui s'affichent pendant la sauvegarde.
          Sur de petites sauvegardes ça ne se voit pas forcément mais l'info y est.

  • # 'nal ?

    Posté par  (site web personnel, Mastodon) . Évalué à 4. Dernière modification le 29 avril 2021 à 21:34.

    Ah merci, je vais tester ça ; tu m'as devancé (j'avais noté en début de semaine de faire un prototype en sh avec une dose de fenêtres de dialog, puis de passer en python si ça devait devenir trop conséquent, mais en parallèle j'avais noté de faire aussi une implémentation avec le cadriciel Django pour d'autres contraintes.)

    Si l'auteur est d'accord, et que la modération passe par là, je pense que cette entrée a plus sa place en tant que journal que comme entrée de fora.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: 'nal ?

      Posté par  (site web personnel) . Évalué à 2.

      J'allais le dire, et peut être aussi en prenant en compte les messages dans les commentaires?

      Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

      • [^] # Re: 'nal ?

        Posté par  . Évalué à 1.

        Ok, pour le journal :-)

        • [^] # Re: 'nal ?

          Posté par  (site web personnel, Mastodon) . Évalué à 2.

          On n'a pas de fonctionnalité prévue pour ça. C'est un administrateur qui doit faire le boulot vu qu'il faut t'attribuer le journal.

          Par contre, tu pourrais copier le Markdown que tu obtiens en appuyant sur le bouton du même nom (c'est bien fait) et le coller dans un nouveau journal.

          De toute façon, on n'embarque pas les commentaires.

          « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.