Le script suivant permet de surveiller le contenu d’un site par un mot clé insérer dans la source du site . Le script suivant utilise CURL (apt-get install curl) pour effectuer des requêtes HTTP permettant de récupérer la source du site dans une liste et vérifier que le mot clé existe bien .
Le script est très utile si celui-ci est hacké ou si celui-ci ne répond plus
Etape 1 : Préparation de l’environnement
mkdir /home/automates
cd /home/automates && mkdir alert index param
Etape 2 : Mise en place du script bash
vim monitsite.sh
Copier coller le script suivant :
#!/bin/sh
BASEDIR="/home/automates" FILE="$BASEDIR/liste.txt" GETPARAM="$BASEDIR/param" GETAL="$BASEDIR/alert" MAILD="VOTRE EMAIL"
while read ligne do
SITE=$(echo $ligne|awk -F"|" '{print($1)}') KEY=$(echo $ligne|awk -F"|" '{print($2)}') PRM=$(echo $ligne|awk -F"|" '{print($3)}')
echo "=== SITE $SITE ==="
if test -z $PRM; then DATA=$(curl -s http://$SITE) else
if test -e $GETPARAM/$SITE.txt; then MPARAM=$(less $GETPARAM/$SITE.txt) echo "curl --request $PRM 'http://$SITE' --data '$MPARAM'" DATA=$(curl --request $PRM 'http://$SITE' --data '$MPARAM' ) fi
fi
if echo $DATA | grep $KEY > /dev/null; then echo "$SITE = OK" if test -e "$GETAL/$SITE"; then rm -f $GETAL/$SITE fi
else
if test -e "$GETAL/$SITE"; then echo "Flag exist"
else SUBJECT="[ALERT] $SITE NOK" EMAIL=$MAILD EMAILMESSAGE="/tmp/email$SITE.txt" DATEEX=$(date '+%d/%m/%y %H:%M') echo "Site $SITE inaccessible le $DATEEX" > $EMAILMESSAGE echo "$SITE = NOK"
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE touch $GETAL/$SITE rm -f $EMAILMESSAGE
fi
fi
echo "" echo "----------------" echo ""
done < $FILE
Etape 3 :
Créer un fichier texte : liste.txt avec le listing des sites et le mot clé a rechercher
Exemple :
site1.fr|key1
site2.fr|key2
Etape 4 : Créer un cron toutes les minutes de monitsite.sh