Notification par SMS

Tuesday, 19 February 2013
|
Écrit par
Grégory Soutadé

SMS in classroom

Un serveur perso c'est bien, un serveur auto hébergé c'est très bien, mais un serveur auto hébergé qui a planté, c'est nul ! L'inconvénient du plantage système est qu'il ne prévient pas, du coup la durée d'indisponibilité peut être longue si l'on ne s'en rend pas compte.

Pour pallier à ce problème, j'ai fait un petit retour vers OVH. Mon compte n'ayant pas été clôturé après la migration du nom de domaine, j'en ai profité pour acheter un pack SMS. Pour environ 10€ TTC, j'ai 100 SMS que je peux envoyer via le web. Ce petit script bash permet de me notifier lorsque le serveur tombe. Bien sûr, il faut pouvoir l'exécuter sur un PC connecté h24...

L'idée est de faire un HEAD sur la favicon de mon blog (qui n'existe pas et qui n'apparaît pas dans les log). La requête est exécutée toutes les 10 minutes. Au bout de 3 échecs successifs (pour éviter les problèmes de changement d'IP), un SMS est envoyé et le script quitte.

#!/bin/bash BASE_URL="https://www.ovh.com/cgi-bin/sms/http2sms.cgi" ACCOUNT="sms-sgXXXXX-1" LOGIN="BBBBBB" PASSWORD="YYYYYYYY" FROM="SOUTADE" TO="%2B33666ZZZZZZ" #+33666ZZZZZZ MESSAGE="Cybelle%20is%20down" # Cybelle is down MAX_TRIES=3 TARGET="http://blog.soutade.fr/favicon.ico" request="$BASE_URL?account=$ACCOUNT&login=$LOGIN&password=$PASSWORD&from=$FROM&to=$TO&message=$MESSAGE&noStop=1" #echo $request tries=$MAX_TRIES while [ 1 ] ; do HEAD $TARGET | grep "404" >/dev/null # Found if [ $? -eq 0 ] ; then # Reset counter if [ ! $tries -eq $MAX_TRIES ] ; then tries=$MAX_TRIES fi else # Fail tries=`expr $tries - 1` fi # No more tries, send notification and exit if [ $tries -eq 0 ] ; then GET "$request" break fi sleep 10m done

PS : Pour utiliser le script, il faut créer un nouvel utilisateur et ajouter un expéditeur depuis l'interface OVH. Attention, les champs doivent être encodés sous la forme URL (voir la partie "encode" de http://soutade.fr/urlunshortener)

#
1
De
kévin
, le
29 April 2015 15:04
Bonjour Grégory,

Je vous contacte pour vous demander si il vous serait possible de m'envoyer votre fonction de test de disponibilité de site?

Je suis actuellement en train de réaliser un projet perso, (non scolaire et non professionnel) ou je souhaiterais en faites être averti si mon site est "down" et en plus m'envoyer au moins une fois par semaine si mon site est accessible, comme une sorte de rapport.

Je vous remercie d'avance pour votre collaboration.

Cordialement
Répondre
Auteur :


e-mail* :


Le commentaire :


#
2
De
Greg
, le
29 April 2015 19:04
Bonsoir,

En réalité, tout est dans le script ci-dessus.

Pour tester si le serveur est en ligne, je fais un requête "HEAD" sur un fichier qui n'existe pas "favicon.ico".

Si la requête échoue 3 fois (manque de connexion), je fais une requête "GET" sur https://www.ovh.com/cgi-bin/sms/http2sms.cgi avec les les paramètres qui vont bien (dont le mot de passe et le nom d'utilisateur), ce qui déclenche l'envoie d'un SMS.

Il faut pouvoir exécuter le script depuis un PC connecté H24.

J'utilise un PC sous GNU/Linux qui fournit tous les outils nécessaire (et éventuellement un cron), je ne peux pas faire mieux que ce qui est présenté ici...
Répondre
Auteur :


e-mail* :


Le commentaire :


#
3
De
kevin
, le
30 April 2015 03:04
Je vous remercie de votre réponse je vais tester et je reviens vers vous ensuite pour vous informer si j'ai réussi à faire ce que je veux ou pas
Répondre
Auteur :


e-mail* :


Le commentaire :


Auteur :


e-mail* :


Le commentaire :




* Seulement pour être notifié d'une réponse à cet article
* Only for email notification