Dans ce billet nous allons voir comment monitorer simplement l’espace disque disponible sur votre raspberry, votre NAS synology, votre serveur ou encore votre PC.
Pour cela nous allons exécuter un script php sur chacune des machines, cela implique que votre machine doit posséder un serveur web actif en prérequis.
Avec ce petit script exécuté à intervalle régulier dans les différentes machines, vous aurez dans l’interface eedomus m’information centralisée des différents espace disque disponible chez vous:
Partons donc du principe que les prérequis sont remplient à savoir disposer d’un serveur web actif sur votre PC, serveur, NAS ou raspberry.
coté eedomus, il va falloir créer un nouvel état par machine a monitorer, pour cela, rendez vous dans configuration / Ajouter un périphérique / Ajouter un autre type de périphérique
configurez cet état comme suit:
Developpez la partie Paramètres Experts et notez le code API pour plus tard.
Notez également vos API user & secret eedomus.
téléchargez le script suivant sur notre Github
Télécharger
Éditez les lignes en surbrillance dans le script:
[php highlight=”1-3,5″]$api_user = ‘xxxxxx’; // ici votre API user eedomus
$api_secret = ‘xxxxxxxxxx’; // ici votre API secret eedomus
$periph_id = 11111; // ici le code API de l’etat à mettre à jour
$value = round(disk_free_space("/volume2/web") / 1024 / 1024 / 1024); // ici chemin repertoire web sur le serveur
$url = "http://api.eedomus.com/set?action=periph.value";
$url .= "&api_user=$api_user";
$url .= "&api_secret=$api_secret";
$url .= "&periph_id=$periph_id";
$url .= "&value=$value";
$result = file_get_contents($url);
if (strpos($result, ‘"success": 1’) == false)
{
echo "Une erreur est survenue: [".$result."]";
}
else
{
echo "MAJ espace disque OK"
}
[/php]
A la ligne 1, remplacer xxxxx par votre API user
A la ligne 2, remplacez xxxxxxxxxx par votre API secret
A la ligne 3, remplacez 11111 par le code API de l’état créé plus haut
A la ligne 6, /volume2/web est le paramètre à inscrire pour un NAS synology. (le numéro du volume peux déferrer selon l’installation).
Pour un raspberry, il faut simplement remplacer /volume2/web par /
Pour un serveur ou un PC windows, remplacez /volume2/web par le nom du lecteur C: ou D: par exemple.
Après modification, déposez le sur votre/vos machine(s) dans le répertoire du serveur web (web,www,root…)
[alert title=”Info”]Vous pouvez tester directement l’exécution du script en appelant la page http://ipduserveur/hdd_space.php dans votre navigateur internet.Le navigateur vous retournera un message d’erreur ou de succès[/alert]
Il ne reste plus qu’a mettre en place l’exécution régulière du script via un actionneur HTTP dans l’eedomus configuré ainsi :
Il ne reste plus qu’a créer une règle qui actionnera les différents actionneurs à votre guise.
Merci Aurel pour tous ces tutos !
Pour aller plus loin avec un synology il y 3 API très intéressante :
– download station : http://ukdl.synology.com/download/ds/userguide/Synology_Download_Station_Official_API.pdf
– file station : http://ukdl.synology.com/download/Document/DeveloperGuide/Synology_File_Station_API_Guide.pdf
– surveillance station : http://ukdl.synology.com/download/ds/userguide/Surveillance_Station_Web_API_v1.3.pdf
allez hop encore une pépite de pompé sur domoblog…
merci aurel 😉
heu je vais encore faire le boulet mais mon script ne s’exécute pas quand j’appelle http://192.168.x.x/scriptespacedisk/hdd_space.php mon fichier php est dans le dossier scripespacedisk j’ai une page blanche et j’ai une erreur de type 500.J’ai tout checker ma config a l’air bonne.Et enfin j’ai donné full acces au dossier
ligne 6 j’ai mis $value = round(disk_free_space(“/”) pour mon rasp
une idée?
hum, tu peux essayer avec le script à la racine de ton serveur web.
même chose …
Étrange car ça fonctionne correctement chez moi.
Même soucis que asecadomotique54 !!
fichier php mis dans le syno dans repertoire web ne marche pas. 🙁
Hum, c’est étrange chez moi tout est OK. J’ai fais mes tests sous xpenology c’est peut être différent sous syno.
Bonjour,
j’ai essayé sur mon Syno, j’ai une page blanche à l’execution du script… qui se trouve dans web\eedomus\
Salut, as tu essayé de le mettre à la racine de ton rep web?
Je viens de faire le test… même résultat, page blanche.
@benee, as tu bien vérifié le chemin du répertoire? Ce n’est peut être pas volume2/web chez toi?
Oui moi je suis en volume1 mais cela ne marche pas mieux !!!
Si tu as une page blanche c’est qu’il y a une erreur dans le code tu devrais obtenir un message d’erreur ou de réussite.
il faut activer les erreurs dans le php.ini pour comprendre ou est l’erreur.
Merci pour cet autre super article,
pourrais t on envisager d’aller plus loin avec une analyse de ces disques et un(des) rapport (personnalisable) ?
Plus gros fichier ? Fichiers inutilisés ? (un peu du style Daisydisk ou foldersizes)
Je vais déjà essayer tout cela 🙂
C.
Script installé sur mon syno et fonctionne sans pb.
Bizarrement, un “;” avait disparu à la fin du dernier echo.
Merci pour ce partage.
c’est effectivement ce que j’ai constaté sur le fichier de benjee, j’a corrigé le package 😉
oui bien vu Nico33 la coquille était la!
je traduis pour ceux qui comme moi son des champions en php 😉
il faut rajouter le ; a la fin de echo “MAJ espace disque OK”; (avant avant dernière ligne)
maintenant ça marche nikel pour moi. Encore merci à aurel pour ce partage encore au top.
C’est ok maintenant avec le “;” qu’il manquait !!!
Merci à tous !!!!
Merci pour cette nouvelle fonctionnalité !
Bonjour
Merci pour ce tuto.
Vous savez si il y a moyen de faire remonter la charge cpu et température du raspberry sur le syno?
Merci a vous
Bonjour
Je viens de tester le script:
Voici le message retourné :
Une erreur est survenue: [{
“success”: “0”,
“body”:
{
“error_code”: “23”,
“error_msg”: “HTTP protocol not allowed on your account.”
}
}]
Merci de votre retour
Je pense avoir trouvé , merci
Dans ce script puis-je remplacer la ligne 14 par :
$value = snmpget(“192.168.0.11”, “public”, “.1.3.6.1.4.1.4555.1.1.1.1.4.4.1.2”)
pour aller lire une tension sur un onduleur
Dans ce cas c’est un Socomec
Merci
pour ma part fonctionne sur Syno mais pas sur PC ? mon PC a comme IP fixe 192.168.0.2 et lorsque j’essai anuellement
192.168.0.2/hdd_space.php rien ==> impossible d’atteindre la page deposé a la racine …
Faut il activer quelque chose sur le PC comme sur le Syno (Web) ?
Merci du retour
salut, le serveur web est-il bien actif sur le PC?
Bonjour je n’arrive pas a faire ce que vous avez mis… cela ne marche pas. comment faire ? merci
Bonjour,
Avez vous bien modifié le chemin du disque a surveiller selon la machine sur la ligne suivante:
$value = round(disk_free_space(“/volume2/web”) / 1024 / 1024 / 1024);
Enfin, avez-vous bien activé un serveur web sur la machine a surveiller?