Sauvegarde simple de Domoticz sur NAS Synology

Beaucoup utilisent le combo Raspberry Pi + carte SD pour créer sa propre “box” domotique. Si vous avez plus de quelques mois d’utilisation, vous êtes déjà probablement tombés sur un système qui refuse de démarrer avec des erreurs obscures telles que :

[  707.493811] EXT4-fs (sdg2): bad geometry: block count 3844864 exceeds size of device (3844863 blocks)

ou encore :

fsck.ext4: Bad magic number in super-block while trying to open /dev/sda5

Et là.. c’est le drame!

C’est le gros problème des cartes SD qui, à la base, n’ont pas été conçues pour recevoir des cycles d’écriture “en continu” d’un système (même minimaliste) allumé 24/7. Il existe plusieurs solutions comme celle que vous donne Vincent sur ce même blog avec l’utilisation d’un disque dur conçu pour le RaspberryPi mais aussi des modifications système permettant de limiter les accès à la carte

Dans tous les cas, pour éviter de perdre des données lors d’une telle mésaventure, il est indispensable de sauvegarder régulièrement votre installation. Domoticz propose de télécharger un dump de la base de données de manière très simple : un simple clic dans l’administration de Domoticz.

C’est bien mais pas suffisant 😉

Si vous avez un NAS Synology en complément de votre installation, il existe une méthode très simple pour faire cette sauvegarde tous les jours, directement sur votre NAS. Le prérequis est d’avoir un utilisateur avec un espace personnel dans /homes/, je pense que c’est le cas par défaut à la création d’un utilisateur sur le DSM (ici en version 6.0.1)

Dans le panneau de configuration, cliquer sur “Planificateur de Taches”

Screenshot from 2016-07-25 22-25-06

 Puis,  Créer / Tache planifiée / Script défini par l’utilisateur

Screenshot from 2016-07-25 22-29-17

Dans la fenêtre, choisir votre utilisateur et nommer la tâche “Backup Domoticz” par exemple :

Screenshot from 2016-07-25 22-46-47

Dans l’onglet Programmer, définir l’heure / la fréquence / le jour de sauvegarde :

Screenshot from 2016-07-25 22-35-21

Enfin dans le l’onglet Paramètre de tâche , ajouter :

wget http://IP_DE_VOTRE_DOMOTICZ:8080/backupdatabase.php -O /var/services/homes/VOTRE_UTILISATEUR/backup_domoticz/domoticz_`date +%Y%m%d`.db

Screenshot from 2016-07-25 22-49-13

Ceci va lancer la commande wget. Elle va  récupérer le backup et le poser à l’endroit prédéfini après le -O, pensez d’ailleurs à créer le dossier backup_domoticz/ au préalable. L’astuce consiste à rajouter en suffixe au nom du fichier la date du jour, sous le format ANNEEMOISJOUR. Ainsi, vous aurez dans votre dossier, l’ensemble de vos sauvegardes classées par date :

!-rw-r--r-- 1 xxxx users 1.4M Jul 25 21:57 domoticz_20160725.db

Voilà une méthode simple, sans avoir besoin de connaissance en ligne de commande ou crontab, vous permettant d’éviter une perte de données importante causée par un éventuel crash ou problème de carte SD.

La méthode doit facilement s’adapter à Jeedom, mais je laisse les spécialistes en parler 😉

Julien

19 thoughts on “Sauvegarde simple de Domoticz sur NAS Synology

  • 9 juillet 2017 at 10 h 56 min
    Permalink

    Très bon tuto simple et efficace ne pas oublier si besoin le password et l’identifiant devant l’adresse IP

    Reply
  • 19 juillet 2017 at 13 h 23 min
    Permalink

    Bonjour,

    J’ai fait ce tuto, mais le fichier téléchargé fait 0kb (alors qu’en manuel dans Domoticz je dois avoir environ 400kb).
    Je ne vois pas où ça bloquerait, j’ai juste changé le port par défaut de Domoticz, mais je l’ai bien mis dans le script.

    Tu aurais des idées ?

    Merci !

    Reply
  • 20 juillet 2017 at 1 h 04 min
    Permalink

    C’est bon ça fonctionne j’avais juste mis en double http:// après wget !

    Reply
  • 24 août 2017 at 14 h 44 min
    Permalink

    Bonjour,

    Voilà ce que me répond le syno !

    “Le planificateur de tâches à terminé une tâche planifiée.

    Tâche : Backup Domoticz
    Heure de début : Thu, 24 Aug 2017 14:33:43 GMT Heure d’arrêt : Thu, 24 Aug 2017 14:33:43 GMT État actuel : 1 Sortie standard/erreur :
    /var/services/homes/admin/backup_domoticz/domoticz_20170824.db: No such file or directory”

    Pffuu, compliqué quand on sait pas!
    merci.

    Reply
  • 29 août 2017 at 10 h 32 min
    Permalink

    Bonjour JP,

    Désolé pour la réponse tardive, mais le problème est que le dossier “/var/services/homes/admin/backup_domoticz/” semble ne pas exister. L’as-tu bien créé au préalable ?

    Julien

    Reply
  • 7 septembre 2017 at 11 h 49 min
    Permalink

    Bonjour,
    Tiens bizarre, je t’avais répondu et le message s’est perdu!
    Sinon, bien sûr que non, je n’avais pas créé le répertoire, et ne comprenait pas vraiment ce que me disait le NAS.
    Néanmoins en cherchant un peu et en faisant quelques essais, j’ai réussi à sauvegarder le fichier ailleurs. A partir de là j’ai compris et réussi à réorienter la sauvegarde dans le répertoire ou je voulais.
    Du coup, est-il possible d’une certaine manière de lire les archivages et au 15 du mois, supprimer l’ensemble des archives du mois précédent? Tu l’as compris, c’est afin d’éviter que ce répertoire ne grossisse indéfiniment!
    Je te remercie de tes retours et déjà de m’avoir répondu.
    Cdt
    JP

    Reply
  • 7 septembre 2017 at 14 h 03 min
    Permalink

    L’intérêt du NAS c’est que normalement tu as largement de quoi stocker de nombreux jours d’historique. Il faudrait créer une tache de nettoyage, dans un cron par exemple, ou améliorer le script appelé par le Synology. C’est pas hyper compliqué mais je n’ai pas de réponse toute faite.

    Reply
  • 7 septembre 2017 at 14 h 24 min
    Permalink

    Ok, ce n’est pas grave et pas très important non plus. Je te remercie de tes retours.
    @+

    Reply
  • 8 septembre 2017 at 12 h 40 min
    Permalink

    Bonjour,
    En continuant mon idée, j’ai créé un script test qui dit ceci.
    http://192.168.xxx.xxx/volume1/perso/backup_domoticz/ find . -type f -mtime +3 -exec rm -vf {} \;
    L’idée étant de supprimer les 3 fichiers les plus vieux de mes sauvegardes.
    Mal m’en a pris, j’ai manifestement corrompu le certificat de sécurité du NAS.
    Je ne peux plus rentrer dans ce dernier en serveur Web, uniquement avec les applications comme DS file, Filezilla ou autre.
    Une idée.
    Merci

    Reply
  • 11 septembre 2017 at 11 h 56 min
    Permalink

    Je me réponds à moi-même, cette commande qui ne s’est pas exécutée au bon endroit n’a eu d’autre effet que de supprimer l’ensemble des librairies du NAS. Aucune issue possible (au moins à ma connaissance et mon faible niveau), juste l’obligation de réinstaller le système et les applications.
    Heureusement, les environnements du système et des applications, notamment DOMOTICZ étaient sauvegardés. Tout est rentré dans l’ordre après 4 heures e boulot!
    Ce qu’il faut en retenir,
    – Ne pas s’aventurer sur des terres inconnues
    – Faire les sauvegardes qui s’imposent.
    Mais bon j’dis ça, j’dis rien…..hhummm, IoI
    @+

    Reply
  • 11 septembre 2017 at 13 h 46 min
    Permalink

    Content que ce soit rentré dans l’ordre 🙂

    A mon avis, le dossier du find n’est pas bon, il vaut mieux mettre le “path” complet en argument :
    find /var/services/homes/admin/ …….

    Reply
  • 12 septembre 2017 at 18 h 03 min
    Permalink

    Certes, mais je vais oublier cette idée de fainéant (c’est d’actualité IoI) pour le moment!
    Cdt,
    @ bientôt et merci.

    Reply
  • 5 juillet 2018 at 16 h 09 min
    Permalink

    Je n’y comprends rien…
    J’ai bien tout fait comme écrit, apporté les petites modifs qui vont bien (https, port spécifique, répertoire et nom du fichier backup différent) mais tout ce que j’obtiens dans le dossier final, c’est un fichier correctement nommé mais avec une taille à 0 bytes… snif.

    Voilà la ligne de commande :
    wget https://MON_IP:MON_PORT_HTTPS/backupdatabase.php -O /var/services/homes/Sylvain/DB_Domoticz_Backup/domoticz_ip27_`date +%Y%m%d`.db

    Merci pour votre aide

    Reply
  • 11 janvier 2019 at 15 h 06 min
    Permalink

    Bonjour,
    Comment faire quand on a un user / mot de passe ? Car pour moi la commande retourne en Authentification Failed vu que j’ai un login de connexion.
    Merci

    Reply
    • 11 avril 2020 at 16 h 17 min
      Permalink

      Bonjour,

      Désolé pour ce déterrage de topic, mais si ça peut vous aider, c’est toujours ça
      J’ai galéré plusieurs heures avant d’y arriver, car :
      – Pb d’identifiant
      – Pb de mot de passe
      – Pb de port
      – Je voulais envoyer la sauvegarde directement dans un dossier partagé qui n’est pas sous homes

      J’ai compris ce qui se passait en collant la commande dans une fenêtre SSH connectée à mon RPI.
      Le message d’erreur retourné (“connexion refusée”) m’a permis de comprendre.

      voici comment j’ai résolu mon problème pour tenir compte de l’identifiant et du mot de passe d’accès à mon Raspberry, ainsi que du port d’accès à mon Domoticz (modifié).
      J’ai remplacé la 1ère moitié de la commande originelle :
      wget http://IP_DE_VOTRE_DOMOTICZ:8080/backupdatabase.php
      par
      wget http://USER_PI:PASS_PI@IP_DOMOTICZ:PORT_DOMOTICZ/backupdatabase.php

      La 2ème moitiée
      -O /var/services/homes/VOTRE_UTILISATEUR/backup_domoticz/domoticz_`date +%Y%m%d`.db
      reste inchangée, à part la personnalisation de l’utilisateur

      Reply
  • 26 décembre 2021 at 7 h 56 min
    Permalink

    Bonjour,
    J’essaie de faire fonctionner le script, mais j’obtiens une sauvegarde de 0 octet, mon domoticz est installé sur mon Synology /var/packages/domoticz.
    Est ce que le script ne fonctionne que si domoticz est installé sur raspberry pi?

    Reply
  • 17 août 2022 at 12 h 27 min
    Permalink

    Bonjour,
    J’avais mis en place cette tache sur mon NAS Synology DS115j. J’ai changé de NAS récemment avec un DS215j et j’ai voulu remettre en place la même tache mais cela ne fonctionne pas.
    L’arborescence sur le DS215j semble être différente.
    Sur le DS115j, j’avais homes\USER\MON_DOSSIER alors que sur le DS215j, j’ai directement \MON_DOSSIER
    Comment connaitre le lien dans son ensemble ? Merci d’avance.

    Reply
    • 17 août 2022 at 13 h 28 min
      Permalink

      Je m’auto réponds : il fallait activer l’accueil des utilisateurs, ça se trouve dans /Utilisateur et groupe/avancé dans le bas de la page.

      Reply
  • 18 octobre 2022 at 2 h 55 min
    Permalink

    Bonjour ,

    Voila 10 ans que j’utilise Domoticz pour ma maison, j’ai malencontreusement fait la mise a jours sur la version 7 hier et je me suis rendu compte, que apres, que le site jadahl est hors ligne, j’ai heureusement fait un back up de tous les scénarios juste avant ; j’ai réussi a downgrader la version 7 pour la 6; et la ma femme a trouver la meilleure idée de désinstaller domoticz quelqu’un pourrait m’aider a trouver la dernière version stable pour DS216J qu’il y avait sur le site de jadahl.

    Reply

Laisser un commentaire

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