Bonjour.
J’essaie de superviser mes backup « Urbackup »
J’avance bien
Via le plugin script j’envoie une commande au serveur Urbackup qui me répond via son API
Salut essai avec un script Python, ce n’est pas le plus simple mais pour moi ca marche.
1.Stocker le resultat de ton script dans un fichier
ex: sudo /var/www/html/plugins/script/check_urabackup.sh >> fichier.txt
2.Création d’un virtuel avec des valeurs infos et noter leurs numerosex: 1000, 1001, 1002, 1003
3.Ensuite créer un second script , de type Python qui va chercher le fichier.txt et qui t’envoie certaines valeurs dans des variables du Virtuel.
ex :
#! /usr/bin python
# coding: utf-8
#Librairies
import urllib
import xml.etree.ElementTree as ET
#################################
#Valeur du fichier.txt
#D01 = donnee1
#D02 = donnee1
#D03 = donnee1
#D04 = donnee1
#################################
#Le numero des variables de ton virtuel
D01 = '1000'
D02 = '1001'
D03 = '1002'
D04 = '1003'
#Adresse IP local de Jeedom
IP = 'x.x.x.x'
#Clé Api de Jeedom plugin Virtuel
cle_api = 'xxxxxxxxxx'
#Adresse pour l envoi d information
Adresse = 'http://' + IP + '/core/api/jeeApi.php?api=' + cle_api + '&type=virtual&id='
Valeur = '&value='
#Cherche le fichier txt (il faut renseigner le dossier)
id_request = ET.parse('/var/www/html/plugins/script/')
#Lecture du fichier txt
root = id_request.getroot()
#Les requetes (penser au .text afin d'avoir la valeur
D01_Call = Adresse + D01 + Valeur + root[2][0][0].text
D02_Call = Adresse + D02 + Valeur + root[2][1][0].text
D03_Call = Adresse + D03 + Valeur + root[3][0][0].text
D04_Call = Adresse + D04 + Valeur + root[3][1][0].text
#Envois de donnees a Jeedom
Envoi01 = urllib.urlopen(D01_Call)
print Envoi01.read()
Envoi02 = urllib.urlopen(D02_Call)
print Envoi02.read()
Envoi03 = urllib.urlopen(D03_Call)
print Envoi03.read()
Envoi04 = urllib.urlopen(D04_Call)
print Envoi04.read()
4.Créer un scénario qui exécute les deux scripts.
Il s’agit d’une piste, pas la solution d’un pro.
Bon courage.
Pour l’affichage, j’ai déjà eu ce soucis avec du texte que je récupère sur une page web (en l’occurence les timers de l’IPX800). J’avais fait un widget avec ce code : <div>#name_display# - #state#</div>
Du coup forcément, il faut recharger la page si l’info change, mais dans mon cas ce n’était pas gênant. Je n’ai pas cherché plus loin.
Et pour traiter l’info, tu peux aussi créer un scénario avec un bloc code ce qui te donnera accès à toutes les fonctions de php. Pour ma part, je préfère cela aux scripts maintenant, je trouve cela plus lisible et facile à maintenir.
J’avance
J’ai crée un script bash qui met permet de définir 2 variables
1 - Le client urbackup ( ex: --client nas)
2 - L’info que je veux remonter. ( ex ----backupstatus)
Et en cli ca marche
root@jeedom:/var/www/html/plugins/script# /var/www/html/plugins/script/urbackup.sh --client nas --clientstatus
Online
root@jeedom:/var/www/html/plugins/script# /var/www/html/plugins/script/urbackup.sh --client nas --lastbackup
08.11.2019 22:08:54
root@jeedom:/var/www/html/plugins/script# /var/www/html/plugins/script/urbackup.sh --client nas --backupstatus
OK
root@jeedom:/var/www/html/plugins/script# /var/www/html/plugins/script/urbackup.sh --client nas --globalstatus
OK
Par contre je sèche pour depuis Jeedom comment ajouter mes 2 arguments dans un virtuel à ma commande script ??
Je pourrai créer autant de commande scripts que d’infos mais bon… si j’ai fait une commande acceptant les arguments c’est pouvoir les appeler
au final comment appeler la commande depuis un virtuel
mon_script --client nas --clientstatus
sudo /var/www/html/plugins/script/urbackup.sh --client nas --clientstatus
Faut que je vérifie quand même qu’un seul fichier texte ne pose pas de problème de conflit en cas de commande simultanée.
Il faudra probablement mettre un fichier avec date et le supprimer.