Get Adobe Flash player

Articles avec le tag ‘source’

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

Cette parcelle de code est faite pour aider à la récupération de la dernière version de webmin , si jamais,  on souhaite créer un script PHP utilisant l’extension SSH2 ( bien pour l’exécuter à distance ),  mais on peut également le faire en local . Ce morceau de code peut servir pour la création d’une mise à jour de webmin automatique sur une machine Ubuntu ou Debian .

  • <?php
  • $fp = file_get_contents(‘http://download.webmin.com/devel/deb‘, ‘r‘);
  • $doc = new DOMDocument();
  • $doc->loadHTML($fp);
  • $tags = $doc->getElementsByTagName(‘a‘);
  • foreach ($tags as $tag) {
  • $extension = explode(« .« ,$tag->nodeValue);
  • if ((strstr($tag->nodeValue, »webmin« ))&&(in_array(« deb« , $extension))){
  • $version = explode(« _« ,$tag->nodeValue);
  • if (is_numeric($version[1])){
  • $version_nouvelle = $version[1]; # Nouvelle version de webmin
  • }
  • }
  • }
  • ?>

Publication sur PHPCS de Codes Sources : http://www.phpcs.com/codes/DETERMINER-VERSION-WEBMIN_48728.aspx