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