Bash – Vérifier la connexion à un site web

Si vous êtes curieux de savoir quand un site web est hors ligne sans pour autant devoir installer un service de monitoring. Voici un petit script bash (linux) qui vérifie la connexion au service web des sites inscrits dans la ligne HOSTS. Et qui vous prévient par mail et inscrit dans un fichier de log lors d’un incident.

Pour le faire fonctionner, il faut simplement indiquer les sites web à vérifier dans la variable HOSTS (séparés par des espaces), indiquer votre adresse email (en ayant pris soin de configurer mailutils)

Le script:

#!/bin/bash
HOSTS="yahoo.fr perdu.com https://google.be"
SUBJECT="Site web Hors ligne"
EMAIL="toto@exemple.com" # votre email ici
TIMEOUT=2

for myHost in $HOSTS
do
result=$(wget -T $TIMEOUT -t 1 $myHost -O /dev/null -o /dev/stdout | grep "Connecting to")
connected=$(echo $result | grep failed);
if [ "$connected" != "" ]; then
echo -e "$(date) - $myHost est down" >> check.log
for myEMAIL in $EMAIL
do
echo -e "$(date) - $myHost est down! \n Ceci est un message automatique." | mail -s "$SUBJECT" $myEMAIL
done
fi
done

 


Placer le script la ou vous pouvez l’exécuter, puis rendez le exécutable:

chmod +x check.sh

Puis ajouter la tache cron

crontab -e

Et ajouter à la fin (par exemple ici toute les heures)
@hourly check.sh

Laisser un commentaire

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