Sauvegarde des rapports

Si comme moi, vous générez des rapports avec jeedom et que la transmission par email ne fonctionne pas bien. Il existe un moyen d’effectuer une sauvegarde des rapports en dehors de notre logiciel de domotique préféré.

Dans mon cas, Jeedom tourne sur un Synology. Je souhaitais stocker ces rapports dans un répertoire où je stocke déjà les backups (transmis automatiquement via Samba), en dehors de la machine virtuelle dans laquelle ils se trouvent.

Il est vrai que c’est mieux de faire des sauvegardes des fichiers importants sur un autre support physique que le système qui héberge Jeedom. Mais comme j’ai une réplication sur le cloud d’une partie du NAS, je peux sans craintes effectuer la copie des rapports sur ce dernier.

Comment ai-je fait?

Comme l’OS du Synology est également sous Linux, l’utilisation de la commande scp est ce que j’avais choisi au départ… Mais il faut saisir le mot de passe.

Etant un peu fainéant (comme beaucoup de geeks lol), je n’ai pas voulu m’embêter avec la création de clé publique et privée. Donc, au final, scp n’était pas le bon choix.

En cherchant un peu sur le net, j’ai trouvé un article parlant de l’application putty que l’on peut installer aussi sous Linux. Elle met à disposition, entre autre, la commande pscp. Cette dernière a plusieurs arguments dont un qui permet de renseigner le mot de passe dans la commande.

Il faut simplement l’installer en se connectant sur le linux de Jeedom en exécutant la commande sudo apt-get install putty

Et dans Jeedom?

La création d’un rapport se fait à travers un scenario. J’ai donc appelé la commande report pour créer le rapport et ensuite un bloc code pour s’occuper de la copie dont voici la ligne de commande.

shell_exec('echo n | pscp -pw "mon_mot_de_passe" -P port -v /var/www/html/data/report/view/1/*.png monutilisateur@IP_de_la_cible:Répertoire_cible/'.date("Y").'/'.date("m").'/');
  • mon_mot_de_passe est à replacer par le mot de passe pour l’utilisateur utilisé
  • la source est toujours au même endroit. Le dernier répertoire, ici 1, est l’ID de la vue que j’ai créée. Il est visible lorsqu’on consulte le rapport dans Jeedom.
  • port est à remplacer par le port utilisé pour le ssh (par défaut 22 mais pour des raisons de sécurité, j’en ai configuré un autre sur le Synology)
  • mon_utilisateur est le nom de l’utilisateur qui sera choisi pour se connecter sur la cible
  • IP_de_la_cible est l’IP de la cible (ici, mon Synology)
  • Répertoire_cible est le chemin où les fichiers seront copiés. Petite remarque, comme le scenario est exécuté à 23:59 et que je souhaite stocker dans un répertoire désignant l’année et un sous-répertoire le mois, j’ai ajouté la commande date qui permet l’ajout de ces deux sous-répertoires.

Voilà ce que cela donne.

Grâce à cette technique, la sauvegarde des rapports est fonctionnelle et il n’est plus nécessaire de les envoyer par email. Ils sont stockés directement sur mon réseau et sur mon cloud.

Publié le 20 octobre 2022
Mis à jour le 1 juillet 2024

Laisser un commentaire

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