Programm welches Files/URL's auf Änderung überprüft
Programm welches Files/URL's auf Änderung überprüft
Brauche eine Software, welche eine von mir erstellte Liste von Files/Webpages überprüft und meldet, wenn diese sich geändert haben.
Kennt einer sowas ?
Schön wär natürlich was auf X basiert.
Ansonsten code ich selber was (evt. in BASH )
Kennt einer sowas ?
Schön wär natürlich was auf X basiert.
Ansonsten code ich selber was (evt. in BASH )
websec - Web Secretary - Web page monitoring software
evtl ist das was für dich.Description: Web Secretary - Web page monitoring software
A visual Web page monitoring software. However, it goes
beyond the normal functionalities offered by such software. Not only
does it detect changes based on content analysis (instead of date/time
stamp or simple textual comparison), it will email the changed page to
you WITH THE NEW CONTENT HIGHLIGHTED!
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
So, ich bin da und hab dran gedacht.
Das Script:
Download - lösch ich vielleicht mal wieder vom Server, deshalb hab ich das Script auch sonst gepostet
Zu beachten ist folgendes:
- Der Browseraufruf/alternative Benachrichtigungsmöglichkeit(en) müssen entsprechend konfiguriert werden. Hier öffnet Galeon einen neuen Tab (bzw startet erst mal)
- der Remove-Parameter ist recht allgemein - alle URLs die den übergebenen Suchstring enthalten werden entfernt, bei "urlwatch remove de" also alle .de-Urls
- Verbesserungen bitte mir schicken.
Ist zwar nicht wie gewünscht X-Basiert aber man kanns gut mit dem Browseraufruf verknüpfen so dass jeweils bei Browserstart gleich auch die URLs gecheckt werden.
MfG Peschmä[/url]
Das Script:
Code: Alles auswählen
#!/bin/bash
#
# Copyright (C) 2004 by Simon Rutishauser <simon.rutishauser@gmx.ch
#
# This program is free software; you can redistribute it and#or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the
# Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
DIR=~/.urlwatch
LOG=$DIR/log.txt
SUMFILE=$DIR/md5sums.txt
NUMBACKUPS=5
mkdir -p $DIR
rm -f $LOG
touch $SUMFILE
help() {
echo -e "\nWelcome to urlwatch\n"
echo -e "urlwatch accepts the following parameters:\n"
echo -e "add [URL1] [URL2] [URLn] Adds the URLs to the list of URLs to check"
echo -e "remove [URL1] [URL2] [URLn] Removes the URLs from the URL-List. Also works if"
echo -e " only parts of the URL were specified. But if you -"
echo -e " per example pass "com" as URL, all .com URLs are"
echo -e " removed. So be careful"
echo -e "check [URL1] [URL2] [URLn] Tests if the passed URL has changed. If no URL is"
echo -e " passed, all URLs are checked"
echo -e "search [URL] Searches for the URL in the URL-List and in its"
echo -e " backups"
}
fetchSum() {
MD5SUM=$(wget -O /dev/stdout $1 2>>$LOG | md5sum | sed s/-//)
if [ $MD5SUM = "d41d8cd98f00b204e9800998ecf8427e" ] ; then
echo -e "\n\nHello, please stop submitting invalid or unreachable urls like\n $1"
ping -c 1 $1
exit 1
fi
}
addSum() {
shift # $1 is/was "add"
until [ -z "$1" ] ; do
echo -n adding $1...
if grep -q $1 $SUMFILE ; then
echo -n " was already there "
else
fetchSum $1
echo "$MD5SUM $1" >> $SUMFILE
fi
echo done
shift
done
}
removeSum() {
backupShift
shift
until [ -z "$1" ] ; do
echo -n removing $1...
grep -v $1 $SUMFILE > $SUMFILE.tmp
mv -f $SUMFILE.tmp $SUMFILE
echo done
shift
done
}
backupShift() {
rm -f $SUMFILE.$NUMBACKUPS
for ((i=$NUMBACKUPS; i > 0; i--)); do
cp -f $SUMFILE.$i $SUMFILE.$(expr $i - 1) 2>>$LOG >>$LOG
done
cp -f $SUMFILE $SUMFILE.1
}
checkSum() {
shift
until [ -z "$1" ] ; do
echo -n checking $1...
OLDSUM=$(grep $1 $SUMFILE | head -c 32)
fetchSum $1
if [ $MD5SUM != $OLDSUM ] ; then
alert $1 $OLDSUM $MD5SUM
fi
echo done
shift
done
}
checkAll() {
echo "checking all files..."
for f in $(sed -r "s/.{34} //g" $SUMFILE); do
checkSum check $f #check 'cause of shift afterwards
done
echo done
}
alert() {
echo -n " ** Website $1 has changed ** "
galeon --new-tab $1 &
sed -i s/$2/$3/g $SUMFILE
}
search() {
echo " "$SUMFILE:
grep $2 $SUMFILE
for ((i=1; i <= $NUMBACKUPS; i++)); do
echo " "$SUMFILE.$i:
if [ -e $SUMFILE.$i ]; then
grep $2 $SUMFILE.$i
fi
done
}
if [ -z $1 ] ; then
checkAll
elif [ $1 = "add" -o $1 = "--add" -o $1 = "-a" ] ; then
addSum $*
elif [ $1 = "remove" -o $1 = "--remove" -o $1 = "-r" ] ; then
removeSum $*
elif [ $1 = "check" -o $1 = "--check" -o $1 = "-c" ] ; then
if [ -z $2 ] ; then
checkAll
else
checkSum $*
fi
elif [ $1 = "search" -o $1 = "--search" -o $1 = "-s" ] ; then
search $*
else
help
fi
Zu beachten ist folgendes:
- Der Browseraufruf/alternative Benachrichtigungsmöglichkeit(en) müssen entsprechend konfiguriert werden. Hier öffnet Galeon einen neuen Tab (bzw startet erst mal)
- der Remove-Parameter ist recht allgemein - alle URLs die den übergebenen Suchstring enthalten werden entfernt, bei "urlwatch remove de" also alle .de-Urls
- Verbesserungen bitte mir schicken.
Ist zwar nicht wie gewünscht X-Basiert aber man kanns gut mit dem Browseraufruf verknüpfen so dass jeweils bei Browserstart gleich auch die URLs gecheckt werden.
MfG Peschmä[/url]
Zuletzt geändert von peschmae am 23.02.2004 13:23:15, insgesamt 2-mal geändert.
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Ist zwar nur ein kleines Detail, aber welche Lizenz soll das haben? Wenn da nichts steht greift das normale Copyright, und das sagt: keine Weitergabe, keine Modifikation ohne schriftl. Erlaubnis des Urhebers...
Patrick (in der Hinsicht etwas paranoid)
Patrick (in der Hinsicht etwas paranoid)
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Ja.
Mach mal nen GPL Header oben rein
/usr/share/common-licenses/GPL-2 ist zwar nicht ideal, aber besser als nichts und dazu einfach zu includen.
*hrm*. dachte es gäbe ein tool, dass automatisch einen GPL-Header einfügt.
Finde es aber im Mom nicht
Mach mal nen GPL Header oben rein
Code: Alles auswählen
INFILE=~/yourscript; OUTFILE=/tmp/yourGPLedScript; head -n 7 /usr/share/common-licenses/GPL-2 | sed 's/^[\t \W]*/# /g' > $OUTFILE && echo >> $OUTFILE && cat $INFILE >> $OUTFILE
*hrm*. dachte es gäbe ein tool, dass automatisch einen GPL-Header einfügt.
Finde es aber im Mom nicht
Oha...peschmae hat geschrieben:So. Gemacht.
@zyta2k: Das header das in Gpl-Programmen/Scripts jeweils steht ist aber nicht der Anfang der GPL. Das steht erst am Ende.
MfG Peschmä
Code: Alles auswählen
INFILE=~/yourscript; OUTFILE=/tmp/yourGPLedScript; tail -n 48 /usr/share/common-licenses/GPL-2 | head -n 13 | sed 's/^[\w \t]*/# /' > $OUTFILE && echo >> $OUTFILE && cat $INFILE >> $OUTFILE
Was für ins .bashrc
Code: Alles auswählen
# Some Functions
gplstamp() {
if [ -n "$1" ]
then
echo "Füge GPL-2 Header zu $1 hinzu..."
echo "Oberste Zeile nicht vergessen ;)"
INFILE="$1"
TMPFILE="/tmp/tmpGPLscript"
YEAR=`date '+%Y'`
sed -e "s/<year>/$YEAR/" -e "s/name of author/$EMAIL/" \
/usr/share/common-licenses/GPL-2 | tail -n 48 | \
head -n 13 | sed 's/^[\w \t]*/#/' > $TMPFILE
echo >> $TMPFILE
cat $INFILE >> $TMPFILE
cp $TMPFILE $INFILE
rm $TMPFILE
else
echo "Keine Datei zum GPL-stampen angegeben. !"
echo "Syntax: gplstamp FILE"
echo ""
fi
}