Vérifier régulièrement le contenu d'une page web et recevoir un avertissement par mail

Vérifier régulièrement le contenu d'une page web et recevoir un avertissement par mail

By ronan, 14 novembre, 2012

Voici un script qui se charge de vérifier les différences qu'il peut y avoir sur une page web entre 2 périodes de temps définies.

$ nl check_url.sh
     1  #!/bin/bash
 
     2  export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
     3  URL="http://quennec.fr"
     4  PREC="/root/precedent"
     5  SUIV="/root/suivant"
 
     6  exec 1>/dev/null 2>&1
 
     7  if [ -e $SUIV ]; then
     8          rm $SUIV
     9  fi
 
    10  curl $URL > $SUIV
 
    11  if [ -e $PREC ]; then
 
    12          diff $SUIV $PREC
    13          if [ $? == 1 ]; then
    14                  mail -s "Ecart sur la page $URL" ronan@quennec.fr<<EOF
    15  EOF
    16          fi
 
    17  fi
 
    18  if [ -e $PREC ]; then
    19          rm $PREC
    20  fi
 
    21  mv $SUIV $PREC
 
    22  exit 0
$

Lignes 2 à 5 : initialisation des variables utilisées dans le script.
Ligne 6 : Redirection des entrées et sorties standards.
Ligne 7 à 9 : Suppression du fichier $SUIV si celui-ci existe.
Ligne 10 : Téléchargement du contenu de la page web et enregistrement dans le fichier $SUIV
Ligne 11 à 17 : Si le fichier $PREC existe, le programme diff compare les 2 fichiers $SUIV et $PREC. Si il y a des différences ($? == 1), un mail est envoyé à l'adresse indiquée.
Ligne 18 à 20 : Si le fichier $PREC existe, il est supprimé.
Ligne 21 : Le fichier $SUIV est renommé en $PREC.

Rendre le script exécutable :

$ chmod +x check_url.sh

Reste à exécuter le script

$ ./check_url.sh

Pour l'automatisation, une ligne sera ajoutée à crontab :

$ crontab -e
*/5     *       *       *       *       /root/check_url.sh

Le script sera exécuté toutes les 5 minutes.

Attachment Taille
check_url.sh_.txt (460 octets) 460 octets
Etiquettes