Comment sauvegarder vos sites, serveurs… sans exploser la facture énergétique

Peur de perdre tout votre travail, vos articles, vos images, vos documents ? Un réflexe : sauvegarder. Mais de la bonne manière... et pas à outrance.

Acheter un mini-serveur (NAS) est un bon investissement pour gérer et protéger vos données d’entreprises ou personnelles. Dans cet article, vous saurez comment sauvegarder des parties de votre serveur distant tout en réduisant au maximum votre impact écologique. Car télécharger régulièrement un site, des images distantes est très coûteux en énergie.

Comme on l’a vu avec OVH, le cloud est bien sur terre. Tout dépend des serveurs, et même les plus grands peuvent commettre des erreurs. D’où la nécessité de s’organiser pour sauvegarder.

Pré-requis pour sauvegarder vos sites, serveurs distants…

  • Déjà, avoir un serveur distant. De notre côté, nous avons noué un partenariat avec IKOULA. Cette entreprise française met à notre disposition des ressources fiables, notamment un VPS. Je vous invite à vous rapprocher d’eux si vous avez des besoins d’hébergement.
  • D’un accès SSH à votre serveur, car c’est grâce à ce protocole sécurisé que vous pourrez récupérer vos données en tâche de fond.
  • D’un NAS (Network Attached Storage).

Pour ma part, j’utilise un Synology, une marque plutôt bien côtée dans le domaine. Le modèle dont je me sers est le DS213j. Je l’ai depuis plus de 6 ans et il fonctionne toujours aussi bien. Pour ce qui va suivre, le principe est assez simple et j’utilise des lignes de commandes : c’est donc adaptable facilement avec d’autres marques.

Principe de création de sauvegardes avec un NAS

L’idée est d’utiliser le programme Linux rsync ( remote synchronization ou synchronisation à distance). Ce petit utilitaire pré-installé ou installable permet de synchroniser des répertoires, pour éviter de tout retélécharger à chaque fois. L’objectif de cette sauvegarde économique ? Mettre à jour les fichiers modifiés, télécharger les nouveaux et supprimer ceux qui n’y sont plus. Rsync remplit donc très bien cette mission.

Nous allons combiner Rsync à SSH afin de se connecter en toute sécurité au serveur distant, et télécharger intelligemment les fichiers nécessaires.

Paramétrage du NAS – Activer Rsync

Cochez la case Enable rsync service

Connectez-vous sur l’interface Web de votre NAS. Ensuite, rendez-vous sur le panneau de contrôle, dans la section File Services puis dans l’onglet rsync.

Cochez la case Enable rsync service – comme sur la capture d’écran ci-dessus.

Préparer un dossier pour récupérer vos fichiers distants

Création d’un backup

Connectez-vous à votre serveur NAS grâce au protocole SSH. Il suffit d’activer le protocole SSH sur l’interface Web de contrôle, et d’utiliser un client SSH comme Bitvise. Vous pouvez utiliser les mêmes identifiant + mot de passe que la version Web.

Ensuite, rendez-vous à la racine de votre disque dur principal en tapant la commande suivante :

cd /volume1/

J’ai choisi de créer un dossier web/backup grâce à la commande :

mkdir web/backup

Vous êtes bien entendu libre de faire autrement.

Ajout de la clé publique de votre serveur distant

Votre NAS doit s’assurer qu’il va se connecter au bon serveur pour récupérer les informations adéquates. Pour cela, il faut ajouter la clé publique dans le fichier des serveurs connus.

Lancez la commande suivante :

ssh-keyscan -H <votre serveur>

ℹ️ J’ai dû utiliser cette commande sur un environnement UNIX avec MinGW64 sur Windows ou une simple console sur Linux/MacOS, car sur mon NAS la commande ssh-keyscan n’existait pas.

Le résultat de cette commande est à copier-coller dans le fichier known_hosts. Pour cela, exécutez la commande suivante :

vi ~/.ssh/known_hosts

👍 Petite astuce d’utilisation de l’éditeur Vi : appuyez sur la touche i pour rentrer dans le mode édition. Ensuite, faites un CTRL+V pour coller le contenu. Puis appuyez sur la touche echap et saisissez :wq – afin de sauvegarder et quitter le mode édition.

Désormais, votre NAS connaît la signature de votre serveur distant.

Génération d’une paire de clés pour s’authentifier sans mot de passe

Donnez l’autorisation à votre NAS d’accéder à votre serveur distant VPS

Lancez la commande suivante afin de vérifier si vous avez déjà généré une paire de clés SSH (sécurisées).

cat ~/.ssh/id_rsa

Si la réponse est « fichier non existant », alors vous devez générer une paire de clé RSA. Lancez la commande suivante :

ssh-keygen

A présent, la console vous demande une passphrase (l’équivalent d’un mot de passe, en plus long), vous n’êtes pas obligé·e d’en saisir un. Votre paire de clés (publique & privée) est maintenant générée. Vous devriez obtenir un résultat semblable à l’image ci-dessus.

Ensuite, vous devez attribuer le bon niveau de droits à votre paire de clés. De cette manière, elle sera sécurisée sur votre NAS. Lancez la commande suivante :

chmod 600 /var/services/homes/<utilisateur>/.ssh/id_rsa

Puis récupérez votre clé publique en lançant la commande suivante :

cat /var/services/homes/<utilisateur>/.ssh/id_rsa.pub

Connectez-vous à votre serveur distant en SSH. Créez un fichier authorized_keys s’il n’existe pas, puis éditez-le avec votre éditeur favori. Enfin, collez le contenu de la clé publique de votre NAS.

Tester la fonction de synchronisation

La configuration technique est désormais terminée. Il est donc temps de passer à un premier test de vérification. Pour cela, adaptez et lancez la commande suivante :

rsync -av -e ssh <utilisateur>@<serveur>:/var/www/html/ /volume1/web/backup/

Comme vous pouvez le constater sur la capture ci-dessus, Rsync récupère la liste de fichiers distants. Il effectue ensuite une analyse pour récupérer/modifier/supprimer les fichiers par rapport à ceux présents sur votre NAS. Si l’exécution de cette commande ne marche pas, vous avez peut être raté une étape.

Création d’une tâche programmée

Retournez sur l’interface de configuration de votre NAS, et accédez au panneau de contrôle puis au Task Scheduler. Cette page liste toutes les tâches programmées en arrière-plan de votre NAS. Rendez-vous dans la partie Create > Scheduled Task > User-defined script. La pop-up suivante s’ouvre :

  • Première étape : nommez la tâche.
  • Second étape : sélectionnez l’utilisateur dont vous vous êtes servi pour configurer votre NAS en SSH.
  • Dernière étape : accédez à l’onglet Schedule.

⚠️ 🔥 🌿 – ATTENTION ! La leçon du jour : sauvegarder excessivement ne sert à rien – à part consommer trop d’énergie. Analysez correctement vos usages, ne faites pas de choix par défaut. En effet, optimiser vos séquences de sauvegardes permet : de mieux gérer la lecture/écriture sur le disque dur, de moins user le matériel, et d’utiliser moins d’électricité. Bref, d’adopter un usage plus écoresponsable. Je vous invite donc à réduire autant que possible la fréquence de sauvegarde. Par exemple : une fois par semaine.

Vous pouvez donc sélectionner un seul jour (👍) ou plus (😭), ainsi que l’heure de démarrage du script (à ajuster en fonction des habitudes de vos utilisateurs).

Dans l’onglet Task Settings, vous pouvez activer l’envoi d’un mail lorsque le script a planté. Pour d’évidentes raisons écologiques, n’activez pas l’envoi de mails tous les jours pour vous informer que tout s’est bien passé.

Et le plus important : copiez-collez la commande qui vous a permis de tester la synchronisation des fichiers d’un serveur distant. Pour rappel :

rsync -av -e ssh upload@les-enovateurs.com:/var/www/html/ /volume1/web/backup/

Bonus : déboguer une tâche programmée

On n’est jamais à l’abri d’un problème lors de l’exécution d’une tâche. Au lieu d’attendre la date et heure de déclenchement, vous pouvez sélectionner la tâche en question puis cliquer sur le bouton Run. De cette manière, vous pourrez voir si les fichiers sont bien téléchargés. Si rien ne se passe, voici mon astuce.

Rendez-vous dans la section Settings puis activez la case Save output results. Indiquez un dossier dans lequel stocker vos logs, puis validez en cliquant sur OK.

Synology crée un dossier synoscheduler, puis un sous-dossier correspondant à l’id de la tâche, et plein d’autres dossiers correspondant à un lancement. Si le dossier démarre par un @, cela signifie que le processus est toujours en cours et c’est plutôt bon signe. A l’intérieur de ce dossier, vous trouverez deux fichiers :

  • output.log : les logs purs et durs.
  • script.log : le script exécuté par le NAS.

Pensez à sauvegarder… de manière responsable

Ne sauvegardez pas à outrance, seulement le nécessaire. Vous y gagnerez financièrement, en efficacité et en rapidité. Lancer une sauvegarde demande de la ressource serveur, de l’espace disque et beaucoup de temps pour récupérer un backup en cas de problème. Enfin, un dernier conseil : utilisez la sauvegarde incrémentale au lieu de tout télécharger.

💬 Connaissez-vous d’autres astuces / techniques pour effectuer des backups sans faire exploser la facture énergétique ? Ou d’autres solutions de sauvegarde ?

Vous aimez les tutoriels pour vos NAS ? Alors découvrez celui sur Git. De cette manière, vous protégerez vos codes sources ou fichiers d’entreprises des plateformes américaines comme Gitlab, GitHub, AWS…


A lire aussi : NAS Synology : installation et utilisation de Git

Photo de couverture : Brent Dalling

Articles Similaires

OhMyForm – Vos sondages sans GAFAM, écoconçus et installables localement

Scrcpy – Sauvez les données d’un smartphone à l’écran brisé… et recyclez-le

Laravel x Slack : recevoir une alerte en cas de problème (exceptions, erreurs…)