Aujourd’hui, je vous propose de parler d’une des fonctions essentielles de Jeedom, sauvegarde ou backups  et restaurations.
Comme pour beaucoup de logiciels, on n’en parle pas assez et malheureusement, on se penche sur le problème bien souvent quand il est déjà trop tard.
En cas de corruption de la carte SD de votre Raspberry ou du disque dur, en cas de mauvaise manipulation, ou pour plein d’autres raisons qui pourraient faire planter Jeedom, les sauvegardes sont indispensables, afin de ne pas tout perdre du jour au lendemain.
Par précaution, Jeedom fait une sauvegarde automatique toutes les nuits et il la stock dans un dossier Backup. Le problème, c’est que si votre carte SD est corrompue, ce qui m’est déjà arrivé, vous perdez tout !
Mais je n’ai pas tout perdu, car j’avais heureusement déporté par précaution, la copie des sauvegardes sur un autre support de stockage.
Voilà donc quelques conseils pour configurer et restaurer une sauvegarde, de manière sûre. A la fin de l’article, je vous propose pour information, un retour d’expérience sur des problèmes rencontrés lors de mes restaurations.


Enregistrer automatiquement les sauvegardes sur un NAS Synology.

Si vous êtes l’heureux possesseur d’un NAS Synology, ou comme moi d’un Xpenology, vous pouvez y déporter le stockage de vos Sauvegardes.
En fait n’importe quelle machine avec un serveur Samba fera l’affaire, une Freebox V6 par exemple.
Dans le cas ou vous n’avez pas de solution matériel pour déporter le stockage de vos sauvegardes, vous pouvez toujours vous acquitter d’un abonnement de 2,00€ par mois, pour que vos sauvegardes soient envoyées sur le serveur de Jeedom market. Avec néanmoins une limite aux 6 dernières sauvegardes des 2 derniers mois.

Configurer la sauvegarde

  • Aller dans : Roue crantée / Configuration / Mises à jour et fichiers / Samba.
  • Cocher : Activer Samba.
  • Saisir l’adresse IP du NAS.
  • Saisir l’utilisateur et le mot de passe du NAS.
  • Saisir le nom du disque réseau contenant le(s) répertoire(s) de sauvegarde, exemple : « //192.168.X.X/Data\ serveur ».
    • Attention les « / » ne sont pas dans le même sens que pour les adresses sous Windows « \ ».
    • Si il y a un espace dans le nom de votre disque réseau, il faut mettre un « \ » devant l’espace.
  • Saisir le chemin dans lequel vous voulez copier les sauvegardes, exemple : « Logiciels/Jeedom/Backup ».
    • Attention il n’y a pas de « / » au debut et à la fin du chemin.
  • Sauvegarder en bas à gauche.

Activer l’envoi des sauvegardes

  • Aller dans : Roue crantée / Sauvegardes.
  • Onglet « Sauvegardes Samba ».
  • Cocher la case « Envoi des sauvegardes ».
  • Cliquer sur : Sauvegarder. (Et pas sur Restaurer :))


C’est ici également que vous pourrez lancer la restauration d’une sauvegarde stockée sur votre NAS, en cliquant sur Restaurer (cette fois ci).

Faire une sauvegarde manuellement

Il peut parfois être utile de faire une sauvegarde manuellement. Par exemple, avant de faire des tests, d’installer un plugin, ou de faire des modifications importantes sur votre Jeedom.
N’oubliez pas que la sauvegarde sera stockée dans le répertoire « /var/www/html/backup » de Jeedom. Donc, si vous avez prévu de tout formater, pensez à récupérer le fichier.
Si vous avez activé le stockage déporté des sauvegardes, Jeedom se chargera d’envoyer les copies au bon endroit. Exemple pour le NAS : Send backup Samba...

  • Aller dans : Roue crantée / Sauvegardes
  • Cliquer sur « Lancer ».
  • Attendre
  • C’est Prêt !


Dans la fenêtre de droite, vous allez voir l’avancement de la sauvegarde.
Vous n’êtes pas obligés de rester sur cette fenêtre. La sauvegarde se fait en arrière plan. Mais évitez cependant de trop solliciter Jeedom à ce moment la.
[START BACKUP]
***************Start of Jeedom backup at 2017-09-01 23:09:38***************
Send begin backup event...OK
Check database...
OK
Backup database...
OK
Persist cache :
OK
Create archive...
OK
Clean old backup...OK
Limit the total size of backups to 500 Mo...
Remove : /var/www/html/core/php/../../backup/backup-Jeedom_Lyon-3.0.11-2017-08-25-05h33.tar.gz
OK
Send backup Samba...
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.18]
putting file backup-Jeedom_Lyon-3.0.11-2017-09-01-23h09.tar.gz as \Logiciels\Jeedom\Backupackup-Jeedom_Lyon-3.0.11-2017-09-01-23h09.tar.gz (7018.2 kb/s) (average 7018.2 kb/s)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.18]
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.18]
OK
Name of backup : /var/www/html/core/php/../../backup/backup-Jeedom_Lyon-3.0.11-2017-09-01-23h09.tar.gz
Send end backup event...OK
Backup duration : 129s
***************Fin de la sauvegarde de Jeedom***************
[END BACKUP SUCCESS]

Restauration d’une sauvegarde

La restauration est possible depuis une sauvegarde présente en local, par exemple un Raspberry, ou stockée sur un autre support, par exemple un NAS synology.

Sauvegardes locales

  • Aller dans : Roue crantée / Sauvegardes.
  • Aller dans l’onglet : Sauvegardes locales.
  • Sélectionner une sauvegarde dans la liste « Sauvegardes disponibles ».
  • Cliquer sur « Restaurer ».


C’est ici que vous pourrez envoyer, supprimer ou télécharger des sauvegardes locales.

Sauvegardes sur NAS

  • Aller dans : Roue crantée / Sauvegardes.
  • Aller dans l’onglet : Sauvegardes Samba.
  • Sélectionner une sauvegarde dans la liste « Sauvegardes disponibles ».
  • Cliquer sur « Restaurer ».


C’est le même principe dans le cas ou vous stockez vos sauvegarde sur le Jeedom Market, il faut juste aller dans l’onglet : « Sauvegardes Market »

Problèmes suite à une restauration de Jeedom

Lorsque j’ai fait une restauration de Jeedom, j’ai rencontré quelques soucis. Voilà mon retour d’expérience avec des solutions aux problèmes rencontrés.

Mise à jour des plugins

Après une restauration, il est recommandé de lancer une mise à jour, pour être certain que les plugins et le core soient bien dans les dernières versions disponibles.

  • Aller dans : Roue crantée / Centre de mise à jour.
  • Cliquer sur : Vérifier les mises à jour.
  • Cliquer sur : Mettre à jour.

Dépendances NOK après restauration

J’ai eu également quelques plugins (capricieux) qui m’ont posés problème après la restauration. Impossible de relancer les dépendances et les démons, statuts à NOK, le plugin ne démarre pas.

  • La solution :
    • Refaire une installation « propre » de Jeedom.
    • Installer les plugins juste après avoir installé Jeedom et avant même de lancer la restauration.
    • Vérifier que les statuts soient bien à OK, si ce n’est pas le cas, il est plus facile de débugger un Jeedom tout frais.
    • Après je restaure la sauvegarde.
  • Quelques plugins ayant posé problème, réglé avec cette technique :
    • Xiaomi Home.
    • Bluetooth Advertisement.
    • Broadlink.

Plugin introuvable info.xml

Dès que la restauration s’est terminée, j’ai reçu plein de messages de Jeedom avec l’erreur suivante :
Plugin introuvable : /var/www/html/core/class/../../plugins/[nom du plugin]/plugin_info/info.xml
L’intitulé du message n’est pas très juste, car les plugins sont bien présents si on va dans le gestionnaire de plugins. Je n’ai pas vérifié, mais je pense que c’est le fichier info.xml qui était introuvable.

  • La solution :
    • Aller dans : Roue crantée / Centre de mise à jour.
    • Cliquer sur « Réinstaller » en face des plugins ayant le problème, afin de forcer la réinstallation.

Message d’erreur lors de la connexion

The stream or file "/var/www/html/core/class/../../log/event" could not be opened: failed to open stream: Permission denied

  • La solution :
    • En SSH taper :
      • sudo chmod 775 -R /var/www/html
      • sudo chown www-data:www-data -R /var/www/html

Démon Statut NOK

Le statut de 2 plugins (Xiaomi Home et JeeOrangeTv) restaient à NOK malgré le statut des dépendances à OK.
Dans le Log j’avais le message suivant :
IOError: [Errno 13] Permission denied: '/tmp/jeedom/xiaomihome/deamon.pid'
Un simple reboot de Jeedom suffit.

Conclusion

Voila un tour rapide de la sauvegarde sur Jeedom. Avec ces quelques conseils, vous devriez pouvoir avancer un peu plus sereinement et vous concentrer sur la configuration et la création de scénarios, sans risquer de perdre des heures de travail.
N’hésitez pas à laisser en commentaire toutes remarques ou conseils complémentaires.

Cet article a 13 commentaires

  1. Bonjour et merci pour votre tuto.
    La sauvegarde sur syno ne fonctionne pas chez moi. Il m’indique que le chemin réseau n’est pas le bon : Error on shell exec, return value : 1. Details : Array ( [0] => tree connect failed: NT_STATUS_BAD_NETWORK_NAME )
    J’ai mis comme données :
    – Backup partage : //192.168.X.X/volume1 (volume1 est le nom de mon volume monté sur le nas)
    – Backup chemin : jeedom/backup ( jeedom est un dossier partagé et backup un sous-dossier)
    J’ai activé SMB sur le nas. Je ne vois pas où est l’erreur. Pouvez vous me renseigner svp ?

    1. Bon,
      je viens de voir mon erreur.
      – Backup partage : //192.168.X.X/jeedom
      – Backup chemin : //backup
      J’en profite pour dire que vos tutos jeedom sont très sympas.

      1. Merci pour ton message et content que tu es trouvé la solution. N’hésite pas si tu as besoin.
        Guillaume.

    2. Bon, j’ai entre temps trouvé la solution.
      Pour jumeler une Time Capsule modèle A1355 (late 2009), avec un Raspberry Pi3, ce qui est mon cas (après je ne m’y connais suffisamment pas pour dire si un Pi2 avec une TC de 5eme generation change quoi que ce soit ou non..) :
      Donc :
      La Kbase jeedom est bonne : https://github.com/jeedom/core/blob/stable/doc/fr_FR/administration.asciidoc
      Si ça ne marche pas c’est que ça vient d’ailleurs, du coup :
      Après avoir essayé toutes les combinaisons en admettant que je me trompais quelque part, je suis arrivé à ce message d’erreur sur jeedom :
      session setup failed: NT_STATUS_ACCESS_DENIED
      j’ai tenté de regarder si j’arrivais à avoir le meme résultat en tapant sur le terminal. J’ai donc tapé :
      => $ smbclient « \\\\192.168.1.xxx\Data »
      et j’ai reçu le meme message que jeedom mais avec ce message initial plus : « Server does not support EXTENDED_SECURITY but ‘client use spnego = yes and ‘client ntlmv2 auth = yes' »
      comprendre Serveur = TC, client=RP.
      Je google donc sur internet : https://discourse.osmc.tv/t/cant-reach-my-smb-shares-after-the-last-osmc-update/15628/44
      Ce que j’ai compris : Le Pi3 applique une norme de sécurité trop élevé (du moins applique les dernières normes). En désactivant certaines normes cela aligne la sécurité du Pi3 à la sécurité de la TC.
      pour ce faire :
      => $ sudo nano /etc/samba/smb.conf (pour éditer le fichier texte des préférences du protocol smb dans votre Rasp )
      => après « global » écrire :
      « client use spnego = no
      client NTLMv2 auth = no »
      => ctrl+X pour sauvegarder
      La sauvegarde se fait nickel, j’ai juste un message qui indique dit : « WARNING: The « syslog » option is deprecated » je ne sais pas exactement ce que cela implique mais je pense qu’au pire des cas, je suis au niveau de la norme de la TC, donc ça va 😀
      voila, si ça peut aider, ou si quelqu’un souhaite ajouter quelque chose, qu’il n’hésite pas 😀

  2. Bon tuto !
    J’ai fait la même chose chez moi et c’est depuis je suis plus tranquille en cas de problème.
    Néanmoins j’ai poussé le vice en archivant intelligent les sauvegardes afin de pouvoir remonter dans le temps.
    Il suffit de faire une tache planifié sur le Syno et de faire tourner quotidiennement un script.
    Voici un petit partage 🙂
    echo « Jeedom-Archive.sh »
    #Répertoire de travail
    storage=/volume1/Backups/Jeedom/Configuration
    #Répertoire où arrivent les sauvegardes Jeedom.
    source=$storage/incoming
    # Configruation des répertoire de destination
    date_daily=`date + »%d-%m-%Y »`
    #date_weekly=`date + »%V sav. %m-%Y »`
    #date_monthly=`date + »%m-%Y »`
    # Récupération du jour et mois en cours
    month_day=`date + »%d »`
    week_day=`date + »%u »`
    # Test 1er du mois
    if [ « $month_day » -eq 1 ] ; then
    destination=backup.monthly/$date_daily
    else
    # test samedi
    if [ « $week_day » -eq 6 ] ; then
    destination=backup.weekly/$date_daily
    else
    # Test jour
    destination=backup.daily/$date_daily
    fi
    fi
    # Déplacement des fichiers
    mkdir $storage/$destination
    mv -v $source/* $storage/$destination
    # Nettoyage du répertoire jour
    find $storage/backup.daily/ -maxdepth 1 -mtime +14 -type d -exec rm -rv {} \;
    # Nettoyage du répertoire semaine
    find $storage/backup.weekly/ -maxdepth 1 -mtime +60 -type d -exec rm -rv {} \;
    # Nettoyage du répertoire mois
    find $storage/backup.monthly/ -maxdepth 1 -mtime +300 -type d -exec rm -rv {} \;

    1. Bonjour
      Il serait agréable de savoir comment on crée une tache planifié sur un Syno. On écrit le script dans quel fichier ?
      Merci pour votre complément d’information

    2. En réponse à la question de Patrick,
      il faut enregistrer le script dans un répertoire partagée du Synology. Exemple : /volume1/homes/admin/Jeedom-Archive.sh (où Jeedom-Archive.sh correspond au nom du script).
      Ensuite, il faut créer une tâche planifiée sur le synology avec le paramétrage suivant :
      – Utilisateur : root (ou tout autre compte pouvant lire/écrire et modifier les répertoires/fichiers ciblés par le script)
      – Exécution : 1 fois par jour (après la sauvegarde jeedom)
      – Exécuter la commande : sh /volume1/homes/admin/Jeedom-Archive.sh (à adapter en fonction des volumes, des partages et du nom du script).

  3. Bonjour à tous,
    Pour ma part, suite à un problème de MicroSD, j’ai dû refaire une « fresh install »
    Et lorsque je veux restaurer une backup, j’ai un message d’erreur
    [START RESTORE]
    ***************Start of Jeedom restoration 2017-11-01 08:52:12***************
    Send begin restoration event…OK
    Check rights…OK
    File use for restoration : /var/www/html/core/class/../../backup/backup-XXXXXX-3.1.7-2017-10-29-02h41.tar.gz
    Backup databse acces configuration…Can not copy /var/www/html/install/../core/config/common.config.php
    OK
    Disable all task OK
    Disable all scenario OK
    Decompression of backup…
    Error during restoration : Cannot find backup database file : DB_backup.sqlDetails : Array
    (
    )
    [END RESTORE ERROR]
    Enable scenario : OK
    Enable task : OK
    PHP Fatal error: Uncaught Exception: Cannot find backup database file : DB_backup.sql in /var/www/html/install/restore.php:134
    Stack trace:
    #0 {main}
    thrown in /var/www/html/install/restore.php on line 134

  4. Bonjour
    Merci et bravo pour cet excellent tuto. On n’est jamais assez prudent…
    Ca fait longtemps que je cherchais à réaliser automatiquement une sauvegarde externe … Grace à vous, c’est maintenant fait.
    Super !

  5. Bonjour,
    (J’ai une mini+, suis débutant et ne connais pas le linux, soyez indulgent!))
    Sur mon PC j’ai une sauvegarde  » jeedom. 3.1.7.tar.gz » que je voudrais restaurer sur ma carte SD (version jeedom3.2.3)
    -Dois je passer par Samba? si oui, que faut il indiquer aux questions : backup IP; backup utilisateur etc…
    -Y a t il une autre solution?
    Merci pour votre travail.

    1. Bonjour,
      non Samba est utile seulement pour la copie de sauvegarde automatique.
      Si c’est juste pour restaurer il faut installer Raspbian puis Jeedom puis restaurer le fichier qui se trouve sur le bureau en utilisant la fonction Envoyer une sauvegarde depuis le menu Sauvegarde puis sélectionner la sauvegarde dans Sauvegardes disponibles et cliquer sur restaurer.

Laisser un commentaire

Merci à ceux qui ont contribué,
votre don contribuera à fournir encore plus de contenu de qualité.

Pour l’envoi du mot de passe pensez à me fournir une adresse mail valide et à vérifier le dossier spam de votre messagerie. Ajoutez ma carte de visite.

Fermer le menu