{"id":97807,"date":"2022-09-02T15:52:36","date_gmt":"2022-09-02T14:52:36","guid":{"rendered":"https:\/\/inrepublica.fr\/blog\/?p=97807"},"modified":"2022-09-02T18:02:27","modified_gmt":"2022-09-02T17:02:27","slug":"sauvegarde-yunohost-sur-nas-synology-distant","status":"publish","type":"post","link":"https:\/\/inrepublica.fr\/blog\/2022\/09\/02\/sauvegarde-yunohost-sur-nas-synology-distant\/","title":{"rendered":"Sauvegarde Yunohost sur NAS Synology distant"},"content":{"rendered":"\n<p>Pour l&rsquo;h\u00e9bergement de mes diff\u00e9rents services web j&rsquo;utilise un VPS h\u00e9berg\u00e9 chez OVH sous <a href=\"https:\/\/yunohost.org\" data-type=\"URL\" data-id=\"https:\/\/yunohost.org\">Yunohost<\/a>. Il s&rsquo;agit d&rsquo;une distribution sous base Debian h\u00e9bergeant des applications web installables facilement. Afin de sauvegarder toutes les donn\u00e9es je souhaite rapatrier une sauvegarde sur un NAS synology distant. Il y a \u00e9videmment de nombreuses fa\u00e7ons de faire, ici je vais mettre en place sur le synology une tache planifi\u00e9e qui va synchroniser le r\u00e9pertoire de yunohost contenant les \u00ab\u00a0backups\u00a0\u00bb vers un r\u00e9pertoire du NAS (\u00e0 l&rsquo;aide d&rsquo;un petit script bash).<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Activation du r\u00e9pertoire home pour les utilisateurs du NAS<\/h1>\n\n\n\n<p>De base sur un NAS synology le r\u00e9pertoire home n&rsquo;est pas cr\u00e9e pour les utilisateurs. Sur votre DSM se rendre dans utilisateurs\/avanc\u00e9 puis activer le service d\u2019accueil de l&rsquo;utilisateur:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"507\" src=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/08\/home_synology.jpg?resize=1024%2C507&#038;ssl=1\" alt=\"\" class=\"wp-image-97831\" srcset=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/08\/home_synology.jpg?resize=1024%2C507&amp;ssl=1 1024w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/08\/home_synology.jpg?resize=300%2C148&amp;ssl=1 300w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/08\/home_synology.jpg?resize=150%2C74&amp;ssl=1 150w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/08\/home_synology.jpg?resize=768%2C380&amp;ssl=1 768w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/08\/home_synology.jpg?w=1148&amp;ssl=1 1148w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">G\u00e9n\u00e9ration de la clef SSH<\/h1>\n\n\n\n<p>Afin de ne pas avoir \u00e0 rentrer de mot de passe pour le script bash qui va faire la sauvegarde, on va utiliser un couple de clef publique \/ priv\u00e9e. Pour ce faire on se connecte en SSH au NAS, puis dans le terminal on g\u00e9n\u00e8re la clef \u00e0 l&rsquo;aide de cette commande:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">ssh-keygen -t rsa<\/code><\/pre>\n\n\n\n<p>On valide l&#8217;emplacement de stockage des clefs par d\u00e9faut, et on laisse vide pour le mot de passe. Enfin on change les droits sur le r\u00e9pertoire .ssh et les clefs \u00e0 l&rsquo;aide de ces commandes (remplacer $VOTRE_VOLUME et $VOTRE_UTILISATEUR par les v\u00f4tres):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo chmod 700 \/$VOTRE_VOLUME\/homes\/$VOTRE_UTILISATEUR\/.ssh\nsudo chmod 600 \/$VOTRE_VOLUME\/homes\/$VOTRE_UTILISATEUR\/.ssh\/*<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Autorisation sur le serveur Yunohost<\/h1>\n\n\n\n<p>Il faut maintenant autoriser l&rsquo;usage de la clef g\u00e9n\u00e9r\u00e9e sur le serveur Yunohost. Pour ce faire on se connecte en SSH au serveur yunohost depuis le NAS, puis on ajoute notre clef publique dans <em>authorized_keys<\/em>. A faire depuis le home de l&rsquo;utilisateur courant sur le NAS (Remplacer les valeurs avec $ par les v\u00f4tres):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">cat ~\/.ssh\/id_rsa.pub | ssh -p $VOTRE_PORT_SSH $ADMIN_YUNOHOST@$VOTRE_SERVEUR.FR \"mkdir -p ~\/.ssh &amp;&amp; touch ~\/.ssh\/authorized_keys &amp;&amp; chmod -R go= ~\/.ssh &amp;&amp; cat &gt;&gt; ~\/.ssh\/authorized_keys\"<\/code><\/pre>\n\n\n\n<p>A ce stade la clef publique est autoris\u00e9e par le daemon SSH du serveur Yunhost. Pour tester le bon fonctionnement on tente une connexion ssh simple, normalement il n&rsquo;y a pas de demande du mot de passe. Sinon quelque chose dysfonctionne(Remplacer les valeurs avec $ par les v\u00f4tres):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">ssh -p $VOTRE_PORT_SSH $ADMIN_YUNOHOST@$VOTRE_SERVEUR.FR<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Mise en place du script<\/h1>\n\n\n\n<p>Sur le NAS dans le \/home de l&rsquo;utilisateur courant on va cr\u00e9er un fichier sauvegarde_yunohost.sh, puis utiliser le script suivant (Remplacer les valeurs avec $ par les v\u00f4tres):<\/p>\n\n\n\n<pre title=\"sauvegarde_yunohost.sh\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">#!\/bin\/bash\n\n# Inscription des r\u00e9sultats dans un fichier log\nexec &amp;&gt; sauvegarde_yunohost.log\n\necho \"*** Lancement du script de sauvegarde ***\"\n\n# Connexion ssh suppression des anciennes sauvegardes puis cr\u00e9ation du backup\nssh -p $VOTRE_PORT_SSH $ADMIN_YUNOHOST@$VOTRE_SERVEUR.FR 'rm \/home\/yunohost.backup\/archives\/*.json &amp;&amp; rm \/home\/yunohost.backup\/archives\/*.tar &amp;&amp; sudo yunohost backup create'\n\n# Synchronisation par RSYNC serveur -&gt; NAS\nrsync -avz --progress --delete-after -e \"ssh -p $VOTRE_PORT_SSH\" $ADMIN_YUNOHOST@$VOTRE_SERVEUR.FR:\/home\/yunohost.backup\/archives\/ \/$VOTRE_VOLUME\/$VOTRE_REPERTOIRE_SAUVEGARDE\/\n\n# Fermeture du script\necho \"*** Fin du script de sauvegarde ***\"\nexit<\/code><\/pre>\n\n\n\n<p>Il s&rsquo;agit d&rsquo;un script tr\u00e8s basique, \u00e0 adapter pour votre usage. Il supprime les sauvegardes sur le serveur Yunohost, en g\u00e9n\u00e8re une nouvelle puis synchronise le backup dans un r\u00e9pertoire de votre NAS. Une am\u00e9lioration possible serait de faire une rotation des sauvegarde afin d&rsquo;en conserver plusieurs par exemple.<\/p>\n\n\n\n<p>Il nous reste maintenant \u00e0 mettre en place une t\u00e2che planifi\u00e9e sur le NAS afin d\u2019ex\u00e9cuter r\u00e9guli\u00e8rement la sauvegarde. Sur le NAS rendez-vous dans panneau de configuration \/ Planificateur de t\u00e2ches, puis cr\u00e9er une nouvelle t\u00e2che comme ceci (A modifier avec vos valeurs):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"503\" height=\"551\" src=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh.jpg?resize=503%2C551&#038;ssl=1\" alt=\"\" class=\"wp-image-97842\" srcset=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh.jpg?w=503&amp;ssl=1 503w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh.jpg?resize=274%2C300&amp;ssl=1 274w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh.jpg?resize=137%2C150&amp;ssl=1 137w\" sizes=\"auto, (max-width: 503px) 100vw, 503px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"553\" src=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh2.jpg?resize=498%2C553&#038;ssl=1\" alt=\"\" class=\"wp-image-97843\" srcset=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh2.jpg?w=498&amp;ssl=1 498w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh2.jpg?resize=270%2C300&amp;ssl=1 270w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh2.jpg?resize=135%2C150&amp;ssl=1 135w\" sizes=\"auto, (max-width: 498px) 100vw, 498px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"554\" src=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh3.jpg?resize=496%2C554&#038;ssl=1\" alt=\"\" class=\"wp-image-97844\" srcset=\"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh3.jpg?w=496&amp;ssl=1 496w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh3.jpg?resize=269%2C300&amp;ssl=1 269w, https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2022\/09\/sauvegarde_yunohost_sh3.jpg?resize=134%2C150&amp;ssl=1 134w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Pour l&rsquo;h\u00e9bergement de mes diff\u00e9rents services web j&rsquo;utilise un VPS h\u00e9berg\u00e9 chez OVH sous Yunohost. Il s&rsquo;agit d&rsquo;une distribution sous base Debian h\u00e9bergeant des applications &hellip; <\/p>\n","protected":false},"author":1,"featured_media":97720,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[17,238],"tags":[226,266,265,267,180,230],"class_list":["post-97807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-web","category-linux","tag-nas","tag-rsync","tag-sauvegarde","tag-ssh","tag-synology","tag-yunohost"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/inrepublica.fr\/blog\/wp-content\/uploads\/2020\/03\/logo.png?fit=200%2C174&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbOkQ3-prx","_links":{"self":[{"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/posts\/97807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/comments?post=97807"}],"version-history":[{"count":16,"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/posts\/97807\/revisions"}],"predecessor-version":[{"id":97848,"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/posts\/97807\/revisions\/97848"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/media\/97720"}],"wp:attachment":[{"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/media?parent=97807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/categories?post=97807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inrepublica.fr\/blog\/wp-json\/wp\/v2\/tags?post=97807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}