Page 1 sur 1

[Bash] Monitoring bande passante

Publié : 01 juin 2015, 17:07
par vin100
Bonjour tous,

Je suis chez numericable la plupart du temps ca dépote bien mais j'ai eu des petit soucis qui venais de mon install a priori du coup je cherchais un moyen de monitorer la bande passante car le plus souvent ce n'est que le download qui plantais et passé de presque 50 à 3 ... bref je me suis demandé comment faire pour monitorer au plus simple tout ça.

Pourquoi ne pas utiliser domoticz ??? j'ai donc fait un script bash à partir de speedtest-cli et une fois les données récupérées, elles sont postées avec une requette json sur un virtual device en pourcentage car les text sensor n'ont pas de log ou en tout cas ca ne fonctionnait pas pour moi peut être quelqu'un pourra m'en dire plus la dessus.

Cette technique ne fonctionne que sous linux pour ma part c'est un cubietruck le serveur principal sur lequel le script tourne pour windows il existe surement un moyen similaire mais je n'en est pas sous la mains.

Dans un premier temps on va installer speedtest-cli comme cela :

download et copie du fichier dans /usr/bin

Code : Tout sélectionner

sudo wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py -O /usr/bin/speedtest-cli
ensuite on le rend executable

Code : Tout sélectionner

sudo chmod +x /usr/bin/speedtest-cli
nous voila donc avec speedtest-cli d'installer. Maintenant il va falloir trouver le serveur le plus proches car c'est toujours mieux pour ce genre de test. Pour cela on va taper la commande suivante:

Code : Tout sélectionner

speedtest-cli --list | grep -i "france"
et on va relever le code du serveur le plus proches de chez nous dans mon cas 1889 pour OVH à roubaix

Ensuite pour que le script fonctionne on crée 3 virtual device en pourcentage que l'on appellera PING, DOWNLOAD et UPLOAD. et on notera leur idx

Après on crée un script dans le dossier de son choix il suffira juste de bien le noté pour la suite moi je l'ai appelé speedtest.sh dans le dossier /home/vince/speedtest/
Il faudra changer le code du serveur trouver précédemment, l'ip du serveur domoticz et l'idx pour chaque device

et après le rendre exécutable par la commande

Code : Tout sélectionner

chmod +x speedtest.sh

Code : Tout sélectionner

#!/bin/bash
speedtest-cli --server 1889 --share --simple > st_results_simple
#sleep 2m
cut -d' ' -f 2  st_results_simple > st_result_cut
#sed -e "s/ //g" st_result_cut > st_result_cutnospace


# variable recup fichier cut
PING=$(sed -n '1 p' st_result_cut)
DOWN=$(sed -n '2 p' st_result_cut)
UP=$(sed -n '3 p' st_result_cut)

echo $PING
echo $DOWN
echo $UP


# envoie info domoticz
curl 'http://192.168.0.10:8080/json.htm?type=command&param=udevice&idx=270&nvalue=0&svalue='$PING
curl 'http://192.168.0.10:8080/json.htm?type=command&param=udevice&idx=271&nvalue=0&svalue='$DOWN
curl 'http://192.168.0.10:8080/json.htm?type=command&param=udevice&idx=272&nvalue=0&svalue='$UP


pour finir on détermine grâce à crontab la fréquence à laquelle on répète le script, moi perso je l'ai mis toutes les heures mais bon on peut le faire plus ou moins de fois par jour, heure, minute etc...

Code : Tout sélectionner

crontab -e
et ensuite on ajoute la ligne

Code : Tout sélectionner

0 */1 * * *  /cheminscript/nomduscript.sh
Et voila maintenant on log notre bande passante je trouve ca plutot interessant dans mon cas vous me direz ce que vous en pensé

Merci à tous

Vin100

Re: Monitoring bande passante

Publié : 02 juin 2015, 12:06
par vil1driver
doublon avec ce sujet

Re: Monitoring bande passante

Publié : 03 juin 2015, 08:03
par jackslayter
oui est non car c'est patrice qui la mis la ;)
patrice a écrit :Bonsoir
Merci et comme cela est pratique, j'ai copié ton post vers la section des tutos

Re: Monitoring bande passante

Publié : 03 juin 2015, 08:32
par patrice
Bonjour
Merci les gars de vos contributions et participation

Re: Monitoring bande passante

Publié : 30 nov. 2018, 18:26
par Datawolf
[Mode déterrage=On]

Bonjour vin100,

Merci pour ce script. Je n'ai pas réussi à l'installer (erreur 404) avec :

Code : Tout sélectionner

sudo wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py -O /usr/bin/speedtest-cli
mais j'y suis arrivé avec l'instruction telle que mentionnée sur github:

Code : Tout sélectionner

sudo wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
EDIT:
J'ai d'abord eu un problème de permission =>résolu avec un sudo chmod +x /usr/bin/speedtest-cli
Mais le script ne renvoyait rien.
J'ai donc fini par exécuter speedtest-cli (sudo speedtest-cli) : il ne se passait rien.
J'ai alors refait une install avec sudo pip install speedtest-cli
J'ai alors eu "ERROR: No matched servers: 1889" => on peut virer l'option SERVER, ou en trouver d'autres sur http://speedtestserver.com/. ;)

@+
Datawolf

Re: Monitoring bande passante

Publié : 17 mai 2020, 17:01
par TG76
Bonjour,

j'ai beau essayer différentes versions, différents réglages, je n'ai aucunes remontée sur DZ.

ca marche bien en ligne de commande, mais rien ne remonte.

j'ai essayé de mettre a la fin http://user:mdp@ip... rien n'y fait

Si quelqu'un peut me filer un coup de main...

d'avance merci

Re: Monitoring bande passante

Publié : 17 mai 2020, 17:34
par denis_brasseur
Tu as bien personnalisé les idx de tes virtual device ?

Code : Tout sélectionner

# envoie info domoticz
curl 'http://192.168.0.10:8080/json.htm?type=command&param=udevice&idx=270&nvalue=0&svalue='$PING
curl 'http://192.168.0.10:8080/json.htm?type=command&param=udevice&idx=271&nvalue=0&svalue='$DOWN
curl 'http://192.168.0.10:8080/json.htm?type=command&param=udevice&idx=272&nvalue=0&svalue='$UP
PING, DOWN et UP doivent être des custom sensor.

Re: Monitoring bande passante

Publié : 21 mai 2020, 22:01
par TG76
Merci de ta réponse,

je n'ai pas réussi a avoir de retour d'état avec ce script. je suis passé par un autre script qui fonctionne et avec lequel on peut lancer manuellement une requête.