{"id":3463,"date":"2019-04-24T10:00:37","date_gmt":"2019-04-24T08:00:37","guid":{"rendered":"http:\/\/www.unicoda.com\/?p=3463"},"modified":"2019-04-06T22:41:30","modified_gmt":"2019-04-06T20:41:30","slug":"sauvegarde-vers-backblaze-b2-avec-duplicity","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=3463","title":{"rendered":"Sauvegarde vers Backblaze B2 avec duplicity"},"content":{"rendered":"\n<p>\u00c9tant donn\u00e9 les difficult\u00e9s rencontr\u00e9es lors de la derni\u00e8re restauration de mon serveur \u00e0 partir des donn\u00e9es sauvegard\u00e9es dans hubic, mais \u00e9galement lors de la tentative de restauration pr\u00e9c\u00e9dente, je suis parti \u00e0 la recherche d&rsquo;un second lieu de sauvegarde. Apr\u00e8s quelques recherches, je me suis d\u00e9cid\u00e9 \u00e0 essayer le service fournit par la soci\u00e9t\u00e9 Backblaze, en particulier avec sa solution B2 Cloud Storage.<\/p>\n\n\n\n<p>Parmi les points qui m&rsquo;ont orient\u00e9 ma d\u00e9cision, on notera : <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>la compatibilit\u00e9 avec duplicity, outil que j&rsquo;utilise actuellement pour r\u00e9aliser mes sauvegardes.<\/li><li>10 GB de stockage gratuit<\/li><li>Pas de n\u00e9cessit\u00e9 de saisir des informations de paiement pour pouvoir tester.<\/li><li>Un co\u00fbt de stockage de 0,005$ par GB et par mois.<\/li><\/ul>\n\n\n\n<p>Du c\u00f4t\u00e9 tarification, nous sommes proches de ce qu&rsquo;on retrouve du c\u00f4t\u00e9 d&rsquo;Amazon Glacier qui propose une tarification \u00e0 0,004$ par Go\/mois pour le choix des r\u00e9gions de stockage les moins chers. Si les offres Amazon peuvent \u00e9galement \u00eatre int\u00e9ressantes, mais l&rsquo;utilisation avec duplicity n&rsquo;est pas disponible en l&rsquo;\u00e9tat. De plus, il semble que la difficult\u00e9 se situe au minimum du c\u00f4t\u00e9 de l&rsquo;option verify qu&rsquo;il faudrait d\u00e9sactiver car comptant comme une demande de restauration. Une autre difficult\u00e9 se situe du c\u00f4t\u00e9 de la restauration des fichiers \u00e0 proprement parl\u00e9, \u00e9tant donn\u00e9 le temps n\u00e9cessaire \u00e0 Glacier pour rendre les fichiers disponibles apr\u00e8s leur sauvegarde. Bref, \u00e0 tester, mais dans un autre contexte.<\/p>\n\n\n\n<p>Passons \u00e0 la configuration de duplicity pour B2. Une version de duplicity v0.7.12 ou plus r\u00e9cente est n\u00e9cessaire. La v\u00e9rification s&rsquo;effectue avec :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">duplicity --version<\/pre>\n\n\n\n<p>La version install\u00e9e sur mes serveurs depuis les d\u00e9p\u00f4ts de Debian \u00e9tait trop ancienne, j&rsquo;ai donc compil\u00e9 le programme \u00e0 partir des sources du projet disponible sur le <a rel=\"noreferrer noopener\" aria-label=\"site du projet (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/www.nongnu.org\/duplicity\/\" target=\"_blank\">site du projet<\/a>. Apr\u00e8s r\u00e9cup\u00e9ration du dossier compress\u00e9 des sources, petit tour dans le README pour prendre connaissance des pr\u00e9-requis et des instructions de compilation. On proc\u00e8de donc \u00e0 l&rsquo;installation des d\u00e9pendances demand\u00e9es :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo aptitude install python-dev librsync-dev intltool python-fastener<\/pre>\n\n\n\n<p>Passage ensuite \u00e0 l&rsquo;\u00e9tape de compilation, apr\u00e8s d\u00e9compression des sources :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">python setup.py build<\/pre>\n\n\n\n<p>Puis d\u00e9sinstallation de la version en provenance du gestionnaire de paquet et installation de la version compil\u00e9e \u00e0 l&rsquo;instant.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo aptitude remove duplicity<br>sudo python setup.py install<\/pre>\n\n\n\n<p>Enfin, v\u00e9rification de la version de duplicity install\u00e9e et v\u00e9rification de l&#8217;emplacement de l&rsquo;ex\u00e9cutable.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">duplicity --version<br>which duplicity<\/pre>\n\n\n\n<p>Apr\u00e8s mon premier test de sauvegarde, j&rsquo;ai not\u00e9 que les composants suivants sont \u00e9galement n\u00e9cessaires au bon fonctionnement de duplicity avec B2 :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pip install b2<br>pip install backports.functools_lru_cache<\/pre>\n\n\n\n<p>\u00c0 ce stade, on peut passer \u00e0 un premier test de sauvegarde vers la solution de stockage de Backblaze. La commande duplicity reste des plus classiques et prends la forme suivante :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">duplicity ~ b2:\/\/[applicationKeyId]:[application key]@[B2 bucket name]<\/pre>\n\n\n\n<p>Attention, la cl\u00e9 d&rsquo;application doit \u00eatre sauvegard\u00e9e dans un endroit s\u00fbr, au hasard, dans son gestionnaire de mot de passe pr\u00e9f\u00e9r\u00e9. En effet, une fois la fen\u00eatre contenant la cl\u00e9 ferm\u00e9e, il n&rsquo;est plus possible d&rsquo;afficher la cl\u00e9 et une nouvelle cl\u00e9 devra \u00eatre g\u00e9n\u00e9r\u00e9e en cas de perte de la premi\u00e8re.<\/p>\n\n\n\n<p>Autre point, la <a rel=\"noreferrer noopener\" aria-label=\"documentation Backblaze (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/help.backblaze.com\/hc\/en-us\/articles\/115001518354-How-to-configure-Backblaze-B2-with-Duplicity-on-Linux\" target=\"_blank\">documentation Backblaze<\/a> est en partie erron\u00e9e dans la structure de la commande duplicity propos\u00e9e, puisque y est fait mention d&rsquo;un param\u00e8tre account_id en lieu et place du param\u00e8tre applicationKeyId ci-dessus. C&rsquo;est bien ce dernier param\u00e8tre qu&rsquo;il faut choisir, car utiliser l&rsquo;account_id ne conduira qu&rsquo;\u00e0 des erreurs d&rsquo;autorisation et \u00e0 de la frustration<\/p>\n\n\n\n<p>Quelques lignes encore pour terminer cet article. Je dispose d\u00e9sormais d&rsquo;une double sauvegarde de mes serveurs vers hubic et maintenant B2. Le volume de donn\u00e9es sauvegard\u00e9es n&rsquo;exc\u00e8de pas, pour l&rsquo;instant, la tranche gratuite du service. Par la suite, j&rsquo;envisage de tester d&rsquo;autres outils de sauvegarde en particulier Restic et Borg. En outre le co\u00fbt relativement faible du stockage m&rsquo;encourage \u00e0 envisager la sauvegarde externe de donn\u00e9es froides comme mes photos num\u00e9riques et ma biblioth\u00e8que de musique. La r\u00e9flexion suit son cours.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c9tant donn\u00e9 les difficult\u00e9s rencontr\u00e9es lors de la derni\u00e8re restauration de mon serveur \u00e0 partir des donn\u00e9es sauvegard\u00e9es dans hubic, mais \u00e9galement lors de la tentative de restauration pr\u00e9c\u00e9dente, je suis parti \u00e0 la recherche d&rsquo;un second lieu de sauvegarde. Apr\u00e8s quelques recherches, je me suis d\u00e9cid\u00e9 \u00e0 essayer le service fournit par la soci\u00e9t\u00e9 &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=3463\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Sauvegarde vers Backblaze B2 avec duplicity&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[415],"tags":[414,413,357,268],"class_list":["post-3463","post","type-post","status-publish","format-standard","hentry","category-sauvegarde","tag-b2","tag-backblaze","tag-duplicity","tag-sauvegarde"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/3463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3463"}],"version-history":[{"count":7,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/3463\/revisions"}],"predecessor-version":[{"id":3523,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/3463\/revisions\/3523"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}