Fond de tiroir #2 ~ Ping des sites web et avertissement par mail

Pour continuer dans la série de mes fonds de tiroirs, je vous propose aujourd’hui un simple fichier PHP unique vous permettant d’aller vérifier régulièrement que vos sites/applications web sont toujours en ligne et retournent bien une en-tête http 200 (=Tout vas bien), le cas échéant, vous pouvez envoyer un mail et monitorer tout ça sur une simple page de consultation.

Le script est en PHP, il utilise une base de donnée sqlite auto généré lors du premier lancement.

Il vous est possible d’ajouter autant de site web que vous le souhaitez et d’avertir 0 ou plusieurs contacts

Lorsque le script détecté autre chose qu’une réponse 200, il met à jour l’espace de visualisation avec la couleur / code / erreur correspondante et envois un mail aux contacts spécifiés


Afin que le script aille vérifier régulièrement les sites que vous aurez enregistré il vous faut mettre en place un CRON(linux) ou une tache planifiée (Windows) qui ira régulièrement exécuter l’adresse http://votreserveur/eyz.php?action=cron

je vous conseille d’ajouter un htaccess pour limiter l’accès au script, je n’ai pas pris le temps de créer une authentification.

Points forts: 

  • Le Script tient en un seul fichier
  • Toutes les erreurs http possibles sont décrites (liste descriptives interne)
  • Email multiples possible
  • Installation relativement simple puisque rien à faire
  • Modification « Inline »
  • Récupère pas mal d’infos des serveurs interrogés (temps de transaction, code HTTP, encodage retourné, type/taille de contenu disponible etc…)

Points faibles

  • Pas d’authentification (il faut passer par un htaccess)
  • Prérequis php sqlite nécessaire
  • Script très peu testé/éprouvé
  • Nécessite la mise en place d’une tâche planifiée/CRON pour faire la vérification automatique

Télécharger le bousin

4 réactions au sujet de « Fond de tiroir #2 ~ Ping des sites web et avertissement par mail »

  1. chevalir Réponse

    Possible aussi gratuitement via des services comme uptimerobot.com ou statusCake.com. J’utilise statuscake pour monitorer ma domotique (mais à la base ces services sont fait pour surveiller des sites web.

  2. Eva Réponse

    J’ai l’habitude d’utiliser StatusCake mais je vais voir ce que ton script a dans le ventre ;)

  3. Chaopale Lamecarlate Réponse

    Hiya idleman !

    J’aime bien ce script :) Je l’ai récupéré, étudié rapidement, et je pense que je vais me bouger un peu pour l’améliorer. Dans ma todolist :

    – remplacer la dépendance à jQuery par du code JS Vanilla (j’aimerais bien aussi trouver un service de fonts qui ne soit pas Google Fonts, parce que je refuse de donner du pouvoir à BigG)
    – modifier le add_domain pour pouvoir lui filer nom et url en arguments (et ajouter des liens à vérifier depuis l’url – avec une clé bien sûr, parce que sinon bonjour la sécurité ^^’ )
    – changer le action=cron en action=check si tu es d’accord, car « cron » désigne la tâche planifiée, et non l’action (ui je suis puriste)

    Dans tous les cas, merci de ce fond de tiroir fort à propos : je suis en train de me créer un site/blog/portfolio avec le CMS Grav et donc j’abandonne WordPress et son chouette plugin de vérification des liens morts. Donc si j’utilise ton script pour faire cette vérification à côté, je n’y perds plus.

    Voilà voilà.

    • Idleman Auteur ArticleRéponse

      Salut Chaopale, ça en fait un bail ! :)
      Fais toi plaisir le script est la pour être modifié :). Je met cron en général car ça me permet d’avoir une action générique appelée toutes les minutes par le cron linux, ceci permettant de deporter entierement la gestion de la crontab dans PHP, bref ce n’est pas une action reservée uniquement au check dans l’absolus mais a toutes les crontab (du moins c’est le cas pour mes gros projets, pour ce projet ci pas dit qu’il y ai besoin d’autres crons mais il faut toujours penser évolutif :D).
      Pas mal grav, tu m’en diras des nouvelles, perso je ne vois pas la pluvalue par rapport aaux autres cms de la nouvelle vague markdown et je trouve le modèle de plugin un peu fouillis mais je ne l’ai pas exploré en profondeur.
      Bonne continuation !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Xo ^_^ :siffle: :p :-( :evil: oO :) T_T <3 :D more »