mercredi 14 octobre 2009

Afficher une notification lorsqu'un serveur répond (Mac OS et Linux)

Etant au chômage technique pour quelques heures, je profite de l'occasion pour écrire un petit article.

Mon problème c'est que mon serveur web est actuellement parti pissé... Donc en attendant qu'il revienne, il faut que je m'occupe. Mais le patron ferait la gueule si je trainais à faire autre chose alors que mon outil de travail est revenu, mais plutôt que de tester toutes les cinq minutes autant rendre la chose ludique et l'automatiser.

Alors d'abord comment être sûr que le serveur est en vie, dans mon cas il s'agit d'un serveur web, donc l'aboutissement d'une simple requête est un signe d'activité. Néanmoins il faut que cette requête soit avec un timeout élevé pour éviter qu'elle ne s'interrompe simplement parce que le serveur n'a pas répondu.

Ainsi dans un terminal sous Mac OS :

  • curl --connect-timeout 200000 http://www.monserveurquiestpasla.com
Et dans un terminal sous Linux :
  • wget -T 200000 http://www.monserveurquiestpasla.com

Dans les deux cas, le timeout (durée d'expiration de la requête) est en secondes, veillez à entre mettre une suffisamment grande. Les deux programmes sont installés par défaut, donc pas de panique de ce côté, ça devrait marché. Reste maintenant à vous notifier :
  • Sous Mac OS, téléchargez l'application Growl et installez là, mais ne démontez pas le volume après installation (pas d'éjection). Ouvrez un terminal et tapez (adaptez la commande selon la version de Growl) : "cd /Volumes/Growl-1.2/Extras/growlnotify", ceci vous amènera dans le dossier de l'application growlnotify qui permet d'appeller une notification en ligne de commande. Il ne vous reste plus qu'à l'installer : "./install.sh", normalement tout fonctionne correctement.
  • Sous Linux, nous allons simplement installer le programme beep qui joue un bip système : "sudo aptitude install beep" et c'est fini ! Linux dispose aussi de système de notifications avancés comme Growl mais je n'ai pas de machine sous Linux à moins de 5 mètres pour faire les tests et vous dire...
Ensuite, il ne vous reste plus qu'à appeller après votre requête la commande de notification. Sous Mac OS :
  • curl --connect-timeout 200000 http://www.monserveurquiestpasla.com ; growlnotify -sm Il semblerait que le serveur soit ok
Et dans un terminal sous Linux :
  • wget -T 200000 http://www.monserveurquiestpasla.com ; beep
Ce type de méthode peut-être également utile lorsque vous attendez derrière un long transfert de fichier, elle est très simple à mettre en place pour peu que votre programme s'exécute en ligne de commande.


Aucun commentaire:

Enregistrer un commentaire

Related Posts with Thumbnails