Webseite auf Veraenderung pruefen

19/12/2008 - 15:13 von Bernd Neumann | Report spam
Ich möchte bei einer Webseite der Art

http://www.irgendwas.de/aktuell.html

die sich mehrmals tàglich àndert, zeitnah mitgeteilt bekommen, dass eine
Änderung stattgefunden hat. Ich dachte dabei an einen Cronjob mit wget,
der sich alle 60 Sekunden die Seite holt, sie mit der letzten Version
vergleicht und bei einer Differenz eine bestimmte Aktion ausführt.

Nur weiß ich leider nicht, wie ich diesen Vergleich hinbekommen kann.
Auch alternative Lösungsvorschlàge sind willkommen.

MfG Bernd
 

Lesen sie die antworten

#1 Heike C. Zimmerer
19/12/2008 - 15:57 | Warnen spam
Bernd Neumann writes:

Ich möchte bei einer Webseite der Art

http://www.irgendwas.de/aktuell.html

die sich mehrmals tàglich àndert, zeitnah mitgeteilt bekommen, dass eine
Änderung stattgefunden hat. Ich dachte dabei an einen Cronjob mit wget,
der sich alle 60 Sekunden die Seite holt, sie mit der letzten Version
vergleicht und bei einer Differenz eine bestimmte Aktion ausführt.



Skelett (ungetestet):

addr="http://www.irgendwas.de/aktuell.html"
inhalt="$(lynx -dump '$addr')"
while sleep 60; do
neu_inhalt="$(lynx -dump '$addr')"
if [ "$neu_inhalt" ] && [ "$neu_inhalt" != "$inhalt" ]; then
echo "Änderung:"
echo "$neu_inhalt"
inhalt="$neu_inhalt"
fi
done


Das [ "$neu_inhalt" ] im 'if' soll abfangen, dass es ja durchaus
vorkommen kann, dass ein Webserver vorübergehend nicht erreichbar ist.
Fehlermeldungen stehen dann auf stderr. lynx eignet sich IMHO besser
als wget, falls Du den Inhalt ausgeben möchtest oder z.B. um ihn an diff
zu verfüttern und lesbar zu bleiben. Sonst (denke ich) sind außer
möglichen Fehlern keine Überraschungen eingebaut.

Gruß,

Heike

Ähnliche fragen