Sauvegarder les données de son NAS Synology vers Ubuntu 16.04 avec Hyper Backup et Rsync

icône hyper backup Même si la baie Synology que j’utilise contient deux disques en miroir, ce qui réduit fortement le risque de perte de données, ce n’est pas une raison pour ne pas sauvegarder les données de celle-ci.

Synology fournit un logiciel, Hyper Backup, qui permet de faire une sauvegarde vers un serveur rsync distant. Mon PC tournant sous Ubuntu, il peut devenir un serveur rsync facilement. Il ne reste plus qu’à mettre tout cela en œuvre.

Dans le cas présent, je vais sauvegarder des données qui sont déjà sur mon PC, et que je synchronise sur la baie Synology avec «Cloud Station». En fait, elles sont déjà sauvegardées avec Déjà-Dup… Il s’agit donc plus ici de tester la solution (et vérifier que cela fonctionne, restauration comprise).

La limitation de ce type de solution est que le PC doit être allumé pour que la sauvegarde fonctionne… Mais bon, cela vaut le coup de tester, trop de sauvegarde ne tue pas la sauvegarde ! 🙂

Configuration de rsync sur le PC

Il faut d’abord configurer rsync, et le déclarer en tant que service. Un service est simplement un programme capable de s’exécuter au démarrage du PC, sans intervention manuelle. Rsync en fait partie sur les système Linux, c’est assez facile à mettre en œuvre.

D’abord, autorisons le service rsync à se lancer :

sudo vi /etc/default/rsync

Si vous n’aimez pas vi, vous pouvez utiliser un éditeur graphique comme gedit :

sudo gedit /etc/default/rsync

Puis modifier la ligne suivante :

RSYNC_ENABLE=true

Il faut maintenant créer le fichier de configuration :

sudo vi /etc/rsyncd.conf

Voici le contenu que j’y ai ajouté, à adapter selon votre cas :

uid = rsync
gid = rsync
max connections = 2
log file = /var/log/rsyncd.log
timeout = 300

[share_rsync]
   path = /Ebackup/Baie-Synology
   comment = Sauvegarde fichiers Baie Synology
   read only = false
   hosts allow = 192.168.0.11
   hosts deny = *

Explications :

Le service rsync va utiliser un compte rsync, qui sera autorisé à utiliser le module share_rsync, qui pointe sur le répertoire /Ebackup/Baie-Synology (avec les droits d’écriture), et uniquement pour la machine avec l’adresse IP 192.168.0.11 (soit l’adresse de la baie Synology).

L’adresse IP de mon PC est bien entendu celle de mon réseau local, à qui j’ai assigné une adresse fixe via l’interface de la freebox :

Il faut donc d’abord créer l’utilisateur rsync (et lui donner un mot de passe), puis lui donner les droits nécessaires sur le répertoire en question :

sudo useradd rsync
sudo passwd rsync
sudo groupadd rsync
sudo gpasswd -a rsync rsync
sudo chown -R rsync:rsync /Ebackup/Baie-Synology
sudo chmod -R 775 /Ebackup/Baie-Synology

Il ne reste plus qu’à démarrer le service (de manière interactive) :

sudo /etc/init.d/rsync start

Voyons maintenant l’état du service :

sudo systemctl status rsync

On voit que le service est démarré mais en état « disable », c’est-à-dire qu’il n’est pas en démarrage automatique :

Validons le service au démarrage du PC avec la commande suivante :

sudo systemctl enable rsync

Et regardons maintenant l »état :

Pour contrôler les services, voilà les commandes les plus utiles :

systemctl status SERVICE
systemctl start SERVICE
systemctl restart SERVICE
systemctl stop SERVICE
systemctl enable SERVICE
systemctl disable SERVICE

Pare-feu

Côté PC, il reste à ouvrir le port 873 utilisé par rsync. Comme je suis sur mon réseau local (et que sur le routeur de la freebox ce port est fermé), je vais faire une règle simple, à l’aide de GUFW, l’outil de configuration fournit sur Ubuntu :

Voilà, tout est près côté PC, il est temps de se tourner vers la baie Synology.

Hyper Backup

Ce logiciel est installé par défaut par Synology. Il suffit donc de le lancer à partir du menu principal. Puis cliquer sur le « + » en bas à gauche, et sélectionner « Tâche de sauvegarde de données ». Sélectionner le mode « Serveur rsync distant » :

Dans le fenêtre suivante, il va falloir saisir :

  • Type de serveur : serveur compatible rsync
  • Nom ou adresse IP du serveur : <l’adresse IP de votre PC> (voir plus haut)
  • Chiffrement du transfert : je laisse « éteint », pas de chiffrement nécessaire.
  • Port : 873 (le port par défaut pour le service rsync, et pour lequel nous avons créé une règle sur la pare-feu)
  • Nom utilisateur : rsync (l’utilisateur que l’on a créé précédemment sur le PC)
  • Mot de passe : le mot de passe définit pour l’utilisateur rsync lors de sa création

À ce stade, cliquer sur la petite flèche pour le champ de « Module de sauvegarde ». Hyper Backup va se connecter au service rsync de votre PC, et doit retrouver tout seul le module [share_rsync] déclaré :

À ce stade, j’ai d’abord eu un message d’erreur « Échec de l’opération. Reconnectez-vous à DSM et réessayer » :

Après quelques recherches sur le net, ce message d’erreur est vraiment générique et ne vous aide pas vraiment ! Seule la première phrase compte… Quelque chose n’a pas fonctionné, c’est tout ce que ‘on peut en conclure.

En fait, j’avais créé un répertoire /Ebackup/BaieSynology sur le disque dur au lieu de /Ebackup/Baie-Synology (comme déclaré dans le fichier /etc/rsyncd.conf).

Une fois ceci corrigé, on arrive à l’écran suivant :

Il ne reste plus qu’à cliquer sur Suivant, et à sélectionner le répertoire que l’on veut sauvegarder :

L’écran suivant vous propose de sauvegarder également des applications Synology, je ne coche rien. Sur le suivant, je change le nom de la tâche, et assigne une heure où le PC est souvent allumé :

Reste à définir les paramètres de la sauvegarde. À chacun de voir, j’ai choisi d’activer la rotation des sauvegardes, d’activer l’option « Smart Recycle », et un nombre de versions qui me permet de revenir un an en arrière :

Voilà, c’est terminé, l’assistant vous demande si vous désirez effectuer une sauvegarde maintenant, je valide, puis quelques instants plus tard (en fonction de la taille de la sauvegarde), j’obtiens l’écran suivant, m’informant que la sauvegarde a bien été effectuée :

Il est possible de vérifier l’intégrité de la sauvegarde :

Testons maintenant la restauration ! Car dans les scénarios « disaster-recovery », le « disaster » est toujours facile à mettre en place ! 😉 Il faut toujours tester la partie « recovery » pour être certain d’avoir tout validé.

Comme je l’ai dit au début de l’article, ces données sont déjà sauvegardées sur le PC, je ne risque donc rien à effacer un répertoire de mon « home » sur la baie Synology. J’efface donc le répertoire « APKs ».

Ceci fait, je relance Hyper Backup, clique sur la petite horloge en bas à gauche, et sélectionne « Data ». Puis je sélectionne la dernière sauvegarde :

Et coche le dossier que je souhaite restaurer :

Je valide, et la restauration démarre :

Et voilà, une fois l’opération terminée, mon répertoire « APKs » a bien été restauré sur la Baie Synology.

Pour conclure, mis à part le message d’erreur du à une erreur de ma part, tout s’est fait très facilement. Voilà donc une solution facile à mettre en place, si on stocke sur la baie Synology des fichiers que l’on n’a pas ailleurs. En prime, on a appris à mettre en place le service rsync sur le PC ! 😉

4 réflexions au sujet de « Sauvegarder les données de son NAS Synology vers Ubuntu 16.04 avec Hyper Backup et Rsync »

  1. Merci pour l’article Pascal! Je vois que GreenShot est utilise a profusion!
    Je vais peut etre me mettre a faire une sauvegarde de mon NAS egalement; un de mes disques est tombe avant hier (mode degraded…).

    1. Salut Alex… En fait, c’est pas GreenShot, mais son équivalent sous Linux, j’ai nommé Shutter. Et tu sais parfaitement qu’un tuto sans de belles images… eh bien, c’est moins bien !! 😉

      Et oui, c’est très facile à mettre en place, alors pourquoi se priver ? Par contre, je vais passer en hebdomadaire, ça suffit dans mon cas, et ça m’évitera de recevoir des mails et des SMS chaque jour (comme ce we) quand je suis absent de chez moi, pour m’annoncer que le backup a échoué ! Là, je suis en train de « nettoyer » mes vidéos sur le PC, envoyant les bonnes sur la baie, et supprimant les autres. Quand j’aurai fini ce ménage, je ferai un backup de ces vidéos sur le PC, et les nouvelles vidéos iront directement sur la baie… Ça devrait être plus propre comme ça.

  2. Salut

    Sympa ton tuto. J’ai des soucis lorsque je veux faire ça au travers de ssh.
    Car mon serveur syno est chez moi, et mon serveur distant est dans le cloud.
    Les commandes rsync depuis syno vers mon serveur dédié fonctionnent bien, mais pas au travers de SSH.

    Si tu as une idée… 🙂

    1. Salut,
      Je ne comprend pas trop ta question : dans ce cas, tu veux tout faire par script, sans utiliser Hyper Backup, c’est ça ?
      (parce que Hyper Backup, lui va faire une connexion TCP sur la machine distante, sur le port défini où tourne le dameon rsync, et basta ! 😉 c’est codé comme ça).

      À priori, je ne vois aucun problème à un script, rsync a une option pour utiliser ssh. En faisant un man de rsync, on peut lire :

      From the user’s perspective, a daemon transfer via a remote-shell con‐
      nection uses nearly the same command-line syntax as a normal rsync-dae‐
      mon transfer, with the only exception being that you must explicitly
      set the remote shell program on the command-line with the –rsh=COMMAND
      option. (Setting the RSYNC_RSH in the environment will not turn on
      this functionality.) For example:

      rsync -av –rsh=ssh host::module /dest

      Si j’ai bien compris…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *