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”
Puis, Créer / Tache planifiée / Script défini par l’utilisateur
Dans la fenêtre, choisir votre utilisateur et nommer la tâche “Backup Domoticz” par exemple :
Dans l’onglet Programmer, définir l’heure / la fréquence / le jour de sauvegarde :
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
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
Très bon tuto simple et efficace ne pas oublier si besoin le password et l’identifiant devant l’adresse IP
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 !
C’est bon ça fonctionne j’avais juste mis en double http:// après wget !
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.
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
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
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.
Ok, ce n’est pas grave et pas très important non plus. Je te remercie de tes retours.
@+
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
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
@+
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/ …….
Certes, mais je vais oublier cette idée de fainéant (c’est d’actualité IoI) pour le moment!
Cdt,
@ bientôt et merci.
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
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
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
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?
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.
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.
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.