Aller au contenu
Lazer

Sauvegarde HC3 automatique sur NAS Synology

Recommended Posts

Sauvegarde Home Center 3

sur NAS Synology

 

 

Voici un script Shell à installer sur un NAS Synology, permettant d'automatiser la sauvegarde de la box Home Center 3.

La sauvegarde est externalisée et stockée sur le NAS.

Un rapport par email est envoyé, ainsi qu'une notification dans l'interface Web de DSM.

 

Installation

 

Télécharger le fichier backup-hc3.sh ci-joint, et le copier sur le NAS.

Modifier le script afin de paramétrer les options suivantes :

 

  • HC3 Address
    • HC3_ADDRESS : Adresse IP de la HC3. Par exemple "192.168.1.1"
  • HC3 Authentication : echo -n 'user:password' | base64
    • HC3_AUTHENTICATION : Identifiants de connexions encodés en base64. Utiliser le site https://www.base64decode.org/ par exemple pour admin:password cela donne "YWRtaW46cGFzc3dvcmQ=". L'utilisateur doit avoir les droits "Administrateur" sur la box.
  • HC3 Global Variable
    • HC3_VARIABLE : nom d'une variable à tester pour bloquer le déclenchement de la sauvegarde, par exemple "Vacances"
    • HC3_VALUE : valeur que doit avoir la variable éventuellement définie pour déclencher la sauvegarde, par exemple "0"
  • NAS
    • NAS_PATH : chemin complet sur le NAS dans lequel copier le fichier sauvegarder, normalement il s'agit du même répertoire qui contient le script, par exemple "/volume1/backup/HC3"
  • Email
    • MAIL_FROM : adresse email source, par exemple : "HC3 <moi@domaine.com>"
    • MAIL_TO : adresse email cible, par exemple "Moi <moi@domaine.com>"
    • MAIL_SUBJECT : titre de l'email, par exemple "Backup HC3"
  • Notification
    • NOTIF_TO : destinataire des notifications sur le NAS, par exemple "@administrators"
    • NOTIF_TITLE : titre de la notification, par exemple "Sauvegarde"
  • Backup timeout
    • TIMEOUT : durée maximale en secondes de la sauvegarde autorisée avant que le script ne considère que la box est plantée, par exemple pour 10 minutes : 600
  • Reboot
    • CLEAN_REBOOT : focer un reboot complet de la box après chaque sauvegarde, valeur par défaut "No"
    • FORCE_REBOOT : forcer le reboto de la box si les services n'ont pas correctement redémarrés après la sauvegarde, valeur par défaut "Yes"

 

 

Sur l'interface Web de DSM, ouvrir le Panneau de configuration, sélectionner le Planificateur de tâches, puis Créer / Tâche planifiée / Script défini par l'utilisateur :

 

screenshot-dsm-task-0-create.png.fa0cae0e2f9d27aa79515ee437ba8c58.png

 

Dans l'onglet "Général", taper un nom de tâche et utiliser le compte "admin" :

 

screenshot-dsm-task-1-general.png.ee4ce87976d10c002aad0221f9384a77.png

 

Dans l'onglet "Programmer", sélectionner un jour et une heure, par exemple chaque dimanche à 3h du matin :

 

screenshot-dsm-task-2-program.png.a7b12f6e252b95ed95a98b61aac5c7ed.png

 

Dans l'onglet "Paramèters de la tâche", entrer l'adresse email destinataire des rapports, et la commande suivante pour exécuter le script (remplacer éventuellement le chemin s'il est différent chez vous) :

set -o pipefail; "/volume1/backup/HC3/backup-hc3.sh" 2>&1 | tee -a "/volume1/backup/HC3/backup-hc3.out"

 

screenshot-dsm-task-3-parameters.png.73b9ad9fc5784a0d2b5a95e2dcc6968a.png

 

 

Utilisation

 

Attendre... :)

 

Lorsque la planification se déclenche, un email est envoyé :

 

screenshot-email.png.c4485646cfb50f9754d45b17c2dbf5f8.png

 

Une notification apparait dans l'interface Web de DSM :

 

screenshot-dsm-notification.png.53dc271379609c97bdbf7c6387b2dd0a.png

 

Un nouveau fichier fbi contenant la sauvegarde (chiffrée) est présent sur le NAS, ainsi qu'un fichier journal backup-hc3.out :

 

screenshot-dsm-files.thumb.png.c82c87bc822597377a5aecce4cf051d6.png

 

 

Exécution immédiate :

 

Si on est impatient et qu'on veut tester immédiatement le script, le plus efficace est d'ouvrir une session SSH en ligne de commande (utiliser PuTTY sous Windows) et de l'exécuter directement :

admin@DiskStation:~$ /volume1/backup/HC3/backup-hc3.sh

Backup Fibaro Home Center : Saturday 11/07/2020 19:10:03
Vérification de la valeur de la variable globale 'Vacances'...
Variable globale 'Vacances' = '0' identique à '0' => Sauvegarde
Sauvegarde...
...........................................................................
Sauvegarde terminée
Téléchargement de backup_HC3-00000000_2020_07_11-19_10_28.fbi...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  794k  100  794k    0     0  8028k      0 --:--:-- --:--:-- --:--:-- 8108k
Téléchargement terminé
Pas de reboot du Home Center

Backup terminé avec succès : Saturday 11/07/2020 19:12:02

 

(penser à activer préalablement le serveur SSH dans le panneau de configuration de DSM si ce n'est pas déjà fait)

 

 

Téléchargement :

 

 

 

Bonus : script pour HC2 :

 

 

  • Like 4

Partager ce message


Lien à poster
Partager sur d’autres sites

Cool ça me rappelle quelques choses ça
Joli travail

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Après un test cela fonctionne j'ai un peu galéré car je croyais que tu avais mis le mot de pas admin:admin " YWRtaW46YWRtaW4=" et ben non :D

On peut aussi dire que ce script fonctionne sous linux avec un cron

 

Backup Fibaro Home Center : Saturday 11/07/2020 16:56:03
Sauvegarde...
........................................................................
Sauvegarde terminée
Téléchargement de backup_HC3-0000XXXX_2020_07_11-16_56_25.fbi...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  635k  100  635k    0     0  7932k      0 --:--:-- --:--:-- --:--:-- 8039k
Téléchargement terminé
Pas de reboot du Home Center

Backup terminé avec succès : Saturday 11/07/2020 16:57:57

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je m'auto-cite : par exemple pour admin:password cela donne "YWRtaW46cGFzc3dvcmQ="

 

OK donc une fois de plus, tu ne lis pas ce que j'écris :20: ..... triste, je suis

 

J'allais ajouter que pour tester directement le script, le mieux est de se connecter en SSH et d'exécuter le script directement en ligne de commande, cela permet de voir l'état d'avancement en temps-réel.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Oups désolé j'ai pas saisi l'auto cite

Après c'est du détail.

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce script ne marche que pour la hc3?
Est il possible de l'utiliser pour la hc2?

Envoyé de mon HD1903 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

 Tout est dans le titre.

 

Partager ce message


Lien à poster
Partager sur d’autres sites
 Tout est dans le titre.
 
LoL
J'avais bien lu le titre, mais sait on jamais

Envoyé de mon HD1903 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer : c'est tiptop :) 

 

installé et en fonction tous les matin à 02h00...

 

merci !!!

 

remarque ... je vais faire mon chieur  : 

 

J'ai galéré un peu car j'ai des noms d'espaces dans les chemins d'accès

 

  • donc dans les paramètres de la tâche sur le NAS, il faut encadrer les chemins par des "" . 

image.png.a5c5b1da6e0472c3ff91b6427901d9a8.png

  • Dans le script shell, ligne 73 et 78, il faut ajouter également les "" autour de ${NAS_PATH}
# Check destination directory
if [ ! -d "${NAS_PATH}" ]
then
	Error "Erreur : le répertoire de destination '${NAS_PATH}' n'existe pas"
	Quit 2
fi
cd "${NAS_PATH}"
  • Ensuite c'est con mais j'ai utilisé comme login:user, mon adresse mail comme pour me connecter en temps normal, et il a pas aimé, faut bien utiliser le user admin.
     

Partager ce message


Lien à poster
Partager sur d’autres sites

@jjacques68 si tu avais bien lu le tutos tu n'aurais pas eu de soucis :2::60:

CF: conversation avec @lazer hier <_<

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 11 heures, kioneoranga a dit :

Ce script ne marche que pour la hc3?
Est il possible de l'utiliser pour la hc2?

Envoyé de mon HD1903 en utilisant Tapatalk
 

je ne pense pas mais on peut faire la même chose sur hc2 je pense...

enfin j'en suis même sur si tu maitrises le shell linux c'est pas très compliquer a faire. Je dis cela mais je serais incapable de le faire :D

Partager ce message


Lien à poster
Partager sur d’autres sites

@kioneoranga l'API a légèrement évolué entre HC2 et HC3. Je t'ai partagé en bonus le script pour la HC2 à la fin du tuto.

 

@jjacques68

- Espace dans les chemins : en effet, merci pour la correction, j'ai mis à jour le script dans le tuto pour intégrer ce correctif. De mon coté j'ai pris pour habitude de ne jamais mettre d'espace dans les noms de chemins/fichiers sous Unix. Les accents ne posent plus de problème depuis le passage à l'Unicode, mais les espaces et un certains nombres de caractères spécieux tels que les guillemets posent toujours problème.

 

- User : j'ai rajouté une précision dans le tuto indiquant que l'utilisateur devait avoir les droits Administrateur. De mon coté, ça fait longtemps que je n'utilise plus "admin" et qu'il a été renommé.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Idem jamais d'espace ni d'accent une habitude que j'ai eu sous DOS

 

 

 

Envoyé de mon BLA-L29 en utilisant Tapatalk

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer : je vais faire une demande (pas en mariage :) ) :

 

penses tu qu'il est possible de glisser dans le nom du fichier de backup, le numéro du firmware correspondant ?

ou alors de créer une arborescence en fonction du firmware ?

 

je me dis que ça permettrait en cas de retrogradage, de pouvoir savoir en quelle version était ce backup...

 

après j'ai aucune idée de la complexité de ma demande...

 

Si tu as un peu de temps et que tu pense que c'est utile, et pas trop compliqué à faire... ce serait avec plaisir !

 

merci !

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est possible oui, même si je n'en vois pas l'intérêt.

Pour moi ce script sert à externaliser les backups en cas de crash violent de la HC3.

Pour le problème qui te concerne, en cas de firmware buggé nécessitant un retour arrière, tu t'en rends compte tout de suite, il suffit de restaurer le dernier backup cloud effectué par la box juste avant la mise à jour, ou bien l'un des 3 derniers backups locaux stockés sur la HC3.

Je ne vois pas bien dans quelle situation on pourrait nécessiter de revenir en arrière plusieurs semaines/mois après ?!?

Pour tout dire, ça m'est arrivé une fois avec la HC2, j'ai dû retourner en arrière 3 semaines, non pas à cause d'un firmware, mais à cause d'une corruption de la base de données des modules Z-Wave. Du coup, le firmware n'avait aucune importance.

 

Je vais essayer de faire ça, mais pas tout de suite.... pas trop le temps en ce moment.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, jjacques68 a dit :

@Lazer : je vais faire une demande

 

C'est mignon tout plein

une belle histoire linuxienne qui commence

if @lazer

fi @jjacques68

 

je vous souhaite un amour while true :98:

  • Haha 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Microsoft béni ce mariage... :)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

alors comportement étrange, 

 

depuis quelques jours, le backup se fait mais j'ai une alerte du NAS que me dit qu'il a pas pu rebooter la box.

Je suis tombé au-delà des 10 min de timeout.

Et le fichier n'est pas copié sur le NAS.

J'ai monté à 12 min pour voir, idem...

 

Je télécharge manuellement un fichier de backup depuis la HC3, et oh ! surprise ils dépassent 25 Mo !!!!!

Alors que depuis le début je tourne entre 5 Mo et 7 Mo.

Et ça depuis que ma box à commencé à crasher (les derniers crash étaient volontaires afin de comprendre le pourquoi du comment - voir sujet dans topic dédié à la mise à jour).

 

J'ai donc restauré la dernière sauvegarde qui était encore de taille normal (dans le nouveau firmware), et là c'est ok...

 

un mystère de plus...

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

hum, tu aurais eu une corruption de ta DB alors, qui l'aurait fait gonfler ?

Tu devrais peut-être demander au support de se connecter et jeter un oeil

Partager ce message


Lien à poster
Partager sur d’autres sites

oui pourquoi, pas y a une procédure qqpart pour prendre contact avec eux ? jamais fais...

Partager ce message


Lien à poster
Partager sur d’autres sites

email : support@fibaro.com

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

bon, je contacte le support technique, en 2 jours, la backup est monté de 5 Mo !

 

J'ai quand même pas tapé pour 5 Mo de ligne de code ! :) 

Partager ce message


Lien à poster
Partager sur d’autres sites

Des logs peut être ?

Depuis le dernier firmware, le panneau d'événements remonte beaucoup plus d'informations.
S'ils n'ont pas adapté la politique de purge automatique, ça pourrait expliquer la croissance de la DB.


En espérant que ça ne soit pas un autre souci plus grave.

 

Mais oui, il faut demander au support.

Partager ce message


Lien à poster
Partager sur d’autres sites

chose faite.

 

J'ai reçu un lien sur Fibaro Customer Care, auquel j'ai du m'inscrire.

Ma demande a visiblement automatiquement ouvert un ticket.

 

à suivre...

Partager ce message


Lien à poster
Partager sur d’autres sites

×