Un script peut il faire ca?

mc-ready

Membre actif
2 Juin 2003
638
2
Bonjour, j'aurais une question à propos des scripts, mais je n'y connais absolument rien en script, donc desolé si je pose une question farfelu :rose:

Je voudrais savoir si un script, peut :

Actualiser une page internet chaque "x" minutes, et faire emettre un son par l'ordi si dans cette page, quelque chose a changé.
:zen:
 
mc-ready a dit:
Je voudrais savoir si un script, peut :

Actualiser une page internet chaque "x" minutes, et faire emettre un son par l'ordi si dans cette page, quelque chose a changé.
:zen:

En ligne de commande, cron, curl (ou wget), diff et say font chacun un bout de ce que tu souhaites. Ca doit pas etre la mort de les chainer ensemble.
 
mc-ready a dit:
Actualiser une page internet chaque "x" minutes, et faire emettre un son par l'ordi si dans cette page, quelque chose a changé.
:zen:

si la page en question possede un flux rss, c'est sans probleme...
 
mc-ready a dit:
Bonjour, j'aurais une question à propos des scripts, mais je n'y connais absolument rien en script, donc desolé si je pose une question farfelu :rose:

Je voudrais savoir si un script, peut :

Actualiser une page internet chaque "x" minutes, et faire emettre un son par l'ordi si dans cette page, quelque chose a changé.
:zen:

Voici un petit script en shell qui permet de faire ce que tu veux.
Bloc de code:
#!/bin/ksh

PAGE=$1

ORIGIN=`curl $PAGE 2>/dev/null | md5`

while [ $ORIGIN != "" ]
        do
        NEW=`curl $PAGE 2>/dev/null | md5`
        if [ $ORIGIN != $NEW ]
                then
                say "the page has changed"
                ORIGIN=$NEW
                open $PAGE
        fi
        sleep 60
done

Pour l'utiliser, il suffit de le lancer dans le terminal:

./nomduscript.ksh "url à tester"


Un test est effectué toutes les 60 secondes, lorsque la page a changé, une voix dit "the page has changed" et safari ouvre la page.
 
bien vu que le coup de md5, J'y avais pas pensé.

Je me suis demandé si on pouvait pas le faire en une ligne de commande.
Le mieux que j'ai trouvé c'est ça:
Bloc de code:
curl $URL >| /tmp/new.txt | diff /tmp/old.txt /tmp/new.txt || say the page has changed && cp /tmp/new.txt /tmp/old.txt && open $URL
Ca buggue un peu, mais c'est pas grave, c'était juste pour voir. Le problème c'est qu'il faut un fichier /tmp/old.txt déjà présente.
Dommage que les pages changent quasiment à chaque visite, ce qui rend ce genre de chose inutile. Faudrait sortir awk, sed ou perl ou cibler précisement l'endroit du changement.