[Bash] Monitoring bande passante
Publié : 01 juin 2015, 17:07
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
ensuite on le rend executable
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:
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
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...
et ensuite on ajoute la ligne
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
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-cliCode : Tout sélectionner
sudo chmod +x /usr/bin/speedtest-cliCode : Tout sélectionner
speedtest-cli --list | grep -i "france"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.shCode : 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¶m=udevice&idx=270&nvalue=0&svalue='$PING
curl 'http://192.168.0.10:8080/json.htm?type=command¶m=udevice&idx=271&nvalue=0&svalue='$DOWN
curl 'http://192.168.0.10:8080/json.htm?type=command¶m=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 -eCode : Tout sélectionner
0 */1 * * * /cheminscript/nomduscript.shMerci à tous
Vin100