{"id":2885,"date":"2019-03-19T14:07:19","date_gmt":"2019-03-19T13:07:19","guid":{"rendered":"https:\/\/blog.alwaysdata.com\/?p=2885"},"modified":"2020-02-11T15:20:43","modified_gmt":"2020-02-11T14:20:43","slug":"la-route-la-ou-on-va-on-na-pas-besoin-de-route","status":"publish","type":"post","link":"https:\/\/blog.alwaysdata.com\/fr\/2019\/03\/19\/la-route-la-ou-on-va-on-na-pas-besoin-de-route\/","title":{"rendered":"La route&nbsp;? L\u00e0 o\u00f9 on va, on n\u2019a pas besoin de&nbsp;route&nbsp;!"},"content":{"rendered":"<p>Et en effet&nbsp;: pas besoin de route sur Internet&nbsp;! En revanche, \u00eatre capable de voyager dans le temps peut parfois s\u2019av\u00e9rer pratique. Alors en <em>route pour le futur<\/em>&nbsp;!<\/p>\n<figure class=\"embed-media__giphy\" style=\"width:65%; padding-bottom:calc(65% * (271 + 12) \/ (500 + 12))\">\n    <video id=\"giphy-${token}\" autoplay loop muted playsinline>\n        <source src=\"https:\/\/media.giphy.com\/media\/7TZvWKVkm0xXi\/giphy.mp4\" type=\"video\/mp4\">\n        <img decoding=\"async\" src=\"https:\/\/media.giphy.com\/media\/7TZvWKVkm0xXi\/giphy.gif\" alt=\" @Giphy\">\n    <\/video>\n<\/figure>\n<hr>\n<h2>Sauvegardes glissantes<\/h2>\n<p>Vous ne devriez pas avoir \u00e0&nbsp;vous soucier de la p\u00e9rennit\u00e9 de vos donn\u00e9es, y&nbsp;compris celles en <em>production<\/em>. C\u2019est pourquoi nous nous en chargeons, et depuis longtemps. Vous disposez de sauvegardes journali\u00e8res automatiques sur 30 jours glissants. Chaque sauvegarde est un <em>snapshot<\/em> de votre espace personnel. Il comprend&nbsp;:<\/p>\n<ul>\n<li>tous les fichiers de votre r\u00e9pertoire utilisateur, notamment vos <a href=\"https:\/\/dotfiles.github.io\/\">fichiers de configuration<\/a><span class=\"footnote_referrer\"><a role=\"button\" tabindex=\"0\" onclick=\"footnote_moveToReference_2885_1('footnote_plugin_reference_2885_1_1');\" onkeypress=\"footnote_moveToReference_2885_1('footnote_plugin_reference_2885_1_1');\"><sup id=\"footnote_plugin_tooltip_2885_1_1\" class=\"footnote_plugin_tooltip_text\">1)<\/sup><\/a><span id=\"footnote_plugin_tooltip_text_2885_1_1\" class=\"footnote_tooltip\"><\/span><\/span>, vos caches, et tout ce que vous d\u00e9posez dans votre espace personnel&nbsp;;<\/li>\n<li>toutes vos boites mail, par domaine et par compte, au format <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Maildir\">Maildir<\/a>, ainsi que vos <a href=\"http:\/\/sieve.info\/\">filtres Sieve<\/a>&nbsp;;<\/li>\n<li>toutes vos bases de donn\u00e9es&nbsp;: pour les bases <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Structured_Query_Language\">SQL<\/a>, vous avez \u00e0&nbsp;votre disposition un export<span class=\"footnote_referrer\"><a role=\"button\" tabindex=\"0\" onclick=\"footnote_moveToReference_2885_1('footnote_plugin_reference_2885_1_2');\" onkeypress=\"footnote_moveToReference_2885_1('footnote_plugin_reference_2885_1_2');\"><sup id=\"footnote_plugin_tooltip_2885_1_2\" class=\"footnote_plugin_tooltip_text\">2)<\/sup><\/a><span id=\"footnote_plugin_tooltip_text_2885_1_2\" class=\"footnote_tooltip\"><\/span><\/span> <em>gzip<\/em> par base&nbsp;; pour les bases <a href=\"https:\/\/fr.wikipedia.org\/wiki\/NoSQL\">NoSQL<\/a>, un r\u00e9pertoire contenant tous les fichiers n\u00e9cessaires \u00e0&nbsp;la restauration (comme les fichiers <em>bson<\/em>).<\/li>\n<\/ul>\n<p>Les sauvegardes sont situ\u00e9es dans un <em>data center<\/em> d\u00e9di\u00e9, hors des sites de production. Vous pouvez facilement acc\u00e9der \u00e0&nbsp;vos <em>snapshots<\/em> directement depuis votre espace personnel. Rendez-vous dans le dossier <code>~\/admin\/backup<\/code>&nbsp;: vos sauvegardes sont attach\u00e9es dans votre syst\u00e8me de fichiers.<\/p>\n<pre><code class=\"plain\">$ tree -L 2 admin\/backup\nadmin\/backup\n\u251c\u2500\u2500 2019-02-12\n\u2502   \u251c\u2500\u2500 files\n\u2502   \u251c\u2500\u2500 mails\n\u2502   \u251c\u2500\u2500 mongodb\n\u2502   \u251c\u2500\u2500 mysql\n\u2502   \u2514\u2500\u2500 postgresql\n\u251c\u2500\u2500 2019-02-13\n\u2502   \u251c\u2500\u2500 files\n\u2502   \u251c\u2500\u2500 mails\n\u2502   \u251c\u2500\u2500 mongodb\n\u2502   \u251c\u2500\u2500 mysql\n\u2502   \u2514\u2500\u2500 postgresql\n\u251c\u2500\u2500 2019-02-14\n\u2502   \u251c\u2500\u2500 files\n\u2502   \u251c\u2500\u2500 mails\n\u2502   \u251c\u2500\u2500 mongodb\n\u2502   \u251c\u2500\u2500 mysql\n\u2502   \u2514\u2500\u2500 postgresql\n\u251c\u2500\u2500 2019-02-15\n\u2502   \u251c\u2500\u2500 files\n\u2502   \u251c\u2500\u2500 mails\n\u2502   \u251c\u2500\u2500 mongodb\n\u2502   \u251c\u2500\u2500 mysql\n\u2502   \u2514\u2500\u2500 postgresql\n...<\/code><\/pre>\n<p>Les <em>snapshots<\/em> de sauvegardes sont mont\u00e9s au travers du r\u00e9seau en mode <strong>lecture-seule<\/strong>. Les permissions sont malgr\u00e9 tout pr\u00e9serv\u00e9es. Vos donn\u00e9es sont ainsi prot\u00e9g\u00e9es, et restent inalt\u00e9rables. Vous \u00eates cependant libres d\u2019y acc\u00e9der.<\/p>\n<h2>Injecter le pass\u00e9 dans le&nbsp;futur<\/h2>\n<h3>La \u00ab&nbsp;bonne vieille m\u00e9thode&nbsp;\u00bb<\/h3>\n<p>Jusqu\u2019ici, le seul moyen de restaurer vos donn\u00e9es \u00e9tait de localiser le(s) fichier(s) \u00e0&nbsp;r\u00e9cup\u00e9rer dans votre r\u00e9pertoire de sauvegardes, et de le copier dans votre dossier personnel. Une <a href=\"https:\/\/help.alwaysdata.com\/fr\/sauvegardes\/\">bonne fa\u00e7on d\u2019am\u00e9liorer<\/a> cette proc\u00e9dure est d\u2019utiliser l\u2019utilitaire <code>rsync<\/code> pour r\u00e9cup\u00e9rer tout un dossier&nbsp;:<\/p>\n<pre><code>$ rsync -a --progress ~\/admin\/backup\/[date-cible]\/files\/[chemin-cible-sans-slash-final] ~\/<\/code><\/pre>\n<p>Pour les bases de donn\u00e9es, vous pouvez utiliser les utilitaires d\u00e9di\u00e9s, comme <code>mysql<\/code> ou <code>pg<\/code> pour r\u00e9injecter les exports dans vos&nbsp;bases&nbsp;:<\/p>\n<pre><code>$ zcat ~\/admin\/backup\/[date-cible]\/mysql\/[dbname].sql.gz | mysql -u [account] -p[password] -h mysql-[account].alwaysdata.net [dbname]<\/code><\/pre>\n<p>Concernant les boites mail\u2026 <em>ahem<\/em>, si vous avez d\u00e9j\u00e0 tent\u00e9 de travailler avec une structure <em>Maildir<\/em>, vous savez de quoi je veux parler. <code>grep<\/code> est votre ami pour localiser les mails que vous souhaitez r\u00e9cup\u00e9rer.<\/p>\n<h3>La DeLorean<\/h3>\n<p>Tout aussi efficace que soit cette proc\u00e9dure, elle n\u2019est quand m\u00eame pas tr\u00e8s centr\u00e9e sur l\u2019utilisateur. C\u2019est pourquoi nous avons construit notre propre <em>DeLorean<\/em>&nbsp;!<\/p>\n<figure class=\"embed-media__ad__medium embed-media__ad__\">\n    <img decoding=\"async\" src=\"https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2019\/03\/backup-restoration-tool-FR.png\" alt=\"interface d'administration : Outil de restauration de sauvegarde\" class=\"aligncenter size-full wp-image-\">\n    <figcaption>interface d\u2019administration&nbsp;: Outil de restauration de sauvegarde<\/figcaption>\n<\/figure>\n<p>Vous pouvez maintenant restaurer vos fichiers directement depuis votre interface d\u2019administration. Rendez-vous dans la rubrique <em>Avanc\u00e9 &gt; Restauration de sauvegardes<\/em>. Choisissez une date, et s\u00e9lectionnez les contenus que vous souhaitez r\u00e9cup\u00e9rer&nbsp;:<\/p>\n<ul>\n<li>pour les fichiers, indiquez dans le champ concern\u00e9 le chemin vers le fichier ou le r\u00e9pertoire<span class=\"footnote_referrer\"><a role=\"button\" tabindex=\"0\" onclick=\"footnote_moveToReference_2885_1('footnote_plugin_reference_2885_1_3');\" onkeypress=\"footnote_moveToReference_2885_1('footnote_plugin_reference_2885_1_3');\"><sup id=\"footnote_plugin_tooltip_2885_1_3\" class=\"footnote_plugin_tooltip_text\">3)<\/sup><\/a><span id=\"footnote_plugin_tooltip_text_2885_1_3\" class=\"footnote_tooltip\"><\/span><\/span>, relatif \u00e0&nbsp;votre r\u00e9pertoire personnel (c\u2019est-\u00e0-dire <code>\/[rep-cible]\/<\/code> pour tout un r\u00e9pertoire)&nbsp;;<\/li>\n<li>pour les bases de donn\u00e9es, cochez les bases \u00e0&nbsp;restaurer&nbsp;;<\/li>\n<li>pour les boites mail, cochez les comptes concern\u00e9s.<\/li>\n<\/ul>\n<p>Appuyez sur <em>valider<\/em>. C\u2019est termin\u00e9&nbsp;! Beaucoup plus simple et pratique, non&nbsp;?<\/p>\n<figure class=\"embed-media__giphy\" style=\"width:65%; padding-bottom:calc(65% * (363 + 12) \/ (480 + 12))\">\n    <video id=\"giphy-${token}\" autoplay loop muted playsinline>\n        <source src=\"https:\/\/media.giphy.com\/media\/3o6Zt16nOfEI0C9sPu\/giphy.mp4\" type=\"video\/mp4\">\n        <img decoding=\"async\" src=\"https:\/\/media.giphy.com\/media\/3o6Zt16nOfEI0C9sPu\/giphy.gif\" alt=\" @Giphy\">\n    <\/video>\n<\/figure>\n<p>Notez que les processus de restauration \u00e9crasent les donn\u00e9es existantes pour les fichiers et les bases de donn\u00e9es. Il vous revient de r\u00e9aliser une copie pour conserver votre version courante si n\u00e9cessaire. Pour les emails, l\u2019outil restaure les anciens emails, mais ne supprime pas ceux re\u00e7us dans l\u2019intervalle.<\/p>\n<hr>\n<p>Nous esp\u00e9rons que ce nouvel outil vous aidera \u00e0&nbsp;mieux g\u00e9rer vos donn\u00e9es au sein de vos processus chez <em>alwaysdata<\/em>. Pour nous, il est toujours plus important de vous fournir des solutions pour g\u00e9rer votre h\u00e9bergement, peu importe votre niveau technique. Nous g\u00e9rons la complexit\u00e9 technique, pour vous permettre de rester concentr\u00e9\u00b7e sur votre production.<\/p>\n<div class=\"speaker-mute footnotes_reference_container\"> <div class=\"footnote_container_prepare\"><p><span role=\"button\" tabindex=\"0\" class=\"footnote_reference_container_label pointer\" onclick=\"footnote_expand_collapse_reference_container_2885_1();\">Notes<\/span><span role=\"button\" tabindex=\"0\" class=\"footnote_reference_container_collapse_button\" style=\"display: none;\" onclick=\"footnote_expand_collapse_reference_container_2885_1();\">[<a id=\"footnote_reference_container_collapse_button_2885_1\">+<\/a>]<\/span><\/p><\/div> <div id=\"footnote_references_container_2885_1\" style><table class=\"footnotes_table footnote-reference-container\"><caption class=\"accessibility\">Notes<\/caption> <tbody> \n\n<tr class=\"footnotes_plugin_reference_row\"> <th scope=\"row\" class=\"footnote_plugin_index_combi pointer\" onclick=\"footnote_moveToAnchor_2885_1('footnote_plugin_tooltip_2885_1_1');\"><a id=\"footnote_plugin_reference_2885_1_1\" class=\"footnote_backlink\"><span class=\"footnote_index_arrow\">\u2191<\/span>1<\/a><\/th> <td class=\"footnote_plugin_text\"><em>dotfiles<\/em><\/td><\/tr>\n\n<tr class=\"footnotes_plugin_reference_row\"> <th scope=\"row\" class=\"footnote_plugin_index_combi pointer\" onclick=\"footnote_moveToAnchor_2885_1('footnote_plugin_tooltip_2885_1_2');\"><a id=\"footnote_plugin_reference_2885_1_2\" class=\"footnote_backlink\"><span class=\"footnote_index_arrow\">\u2191<\/span>2<\/a><\/th> <td class=\"footnote_plugin_text\"><em>dump<\/em><\/td><\/tr>\n\n<tr class=\"footnotes_plugin_reference_row\"> <th scope=\"row\" class=\"footnote_plugin_index_combi pointer\" onclick=\"footnote_moveToAnchor_2885_1('footnote_plugin_tooltip_2885_1_3');\"><a id=\"footnote_plugin_reference_2885_1_3\" class=\"footnote_backlink\"><span class=\"footnote_index_arrow\">\u2191<\/span>3<\/a><\/th> <td class=\"footnote_plugin_text\">nous limitons pour le moment la restauration \u00e0&nbsp;un chemin unique<\/td><\/tr>\n\n <\/tbody> <\/table> <\/div><\/div><script type=\"text\/javascript\"> function footnote_expand_reference_container_2885_1() { jQuery('#footnote_references_container_2885_1').show(); jQuery('#footnote_reference_container_collapse_button_2885_1').text('\u2212'); } function footnote_collapse_reference_container_2885_1() { jQuery('#footnote_references_container_2885_1').hide(); jQuery('#footnote_reference_container_collapse_button_2885_1').text('+'); } function footnote_expand_collapse_reference_container_2885_1() { if (jQuery('#footnote_references_container_2885_1').is(':hidden')) { footnote_expand_reference_container_2885_1(); } else { footnote_collapse_reference_container_2885_1(); } } function footnote_moveToReference_2885_1(p_str_TargetID) { footnote_expand_reference_container_2885_1(); var l_obj_Target = jQuery('#' + p_str_TargetID); if (l_obj_Target.length) { jQuery( 'html, body' ).delay( 0 ); jQuery('html, body').animate({ scrollTop: l_obj_Target.offset().top - window.innerHeight * 0.2 }, 380); } } function footnote_moveToAnchor_2885_1(p_str_TargetID) { footnote_expand_reference_container_2885_1(); var l_obj_Target = jQuery('#' + p_str_TargetID); if (l_obj_Target.length) { jQuery( 'html, body' ).delay( 0 ); jQuery('html, body').animate({ scrollTop: l_obj_Target.offset().top - window.innerHeight * 0.2 }, 380); } }<\/script>","protected":false},"excerpt":{"rendered":"<p>Naviguez dans le pass\u00e9 avec notre machine \u00e0&nbsp;remonter le&nbsp;temps&nbsp;!<\/p>\n","protected":false},"author":12,"featured_media":2874,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[230,230],"tags":[158,158],"class_list":{"0":"post-2885","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-uncategorized-fr","9":"tag-sauvegardes-fr"},"acf":[],"_links":{"self":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts\/2885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/comments?post=2885"}],"version-history":[{"count":0,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts\/2885\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/media\/2874"}],"wp:attachment":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/media?parent=2885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/categories?post=2885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/tags?post=2885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}