Bookmarksn auf Änderungen überwachen

bjou

Well-Known Member
Hi, in der aktuellsten freeX Ausgabe abe ich auf S. 91 nen interessanten Artikel entdeckt, wie man seine Bookmarks auf Änderungen überwachen lassen kann. Dazu war folgendes Script agegeben:
Code:
#!/usr/local/bin/bash
# webwatch.sh

BOOKMARKS="/pfad/zu/bookmarks/bookmarks.html"
WF="webwatch"
WD="/home/bjou/webwatch"
WL="$WD/log.old"
MAILADR="mail@email.com"

for bookmark in $(cat $BOOKMARKS | sed "/^\s\{4\}<D><H3.*>$WF<\/H/3>/,/^\s\{4\}<\/D/L>/!d" | grep "<DT><A" | sed "s/.*<A HREF=\"\([^\"]*\).*/\1/"); do
	bookmarks[${#bookmarks[*]}]=$bookmark
done

for i in $(seq 0 $((${#bookmarks[*]} - 1))); do
	touch "$WD/${bookmarks[$i]//\//_}"
done

for i in $WD/*; do
	mv "$i" "$i.old"
done

for i in $(seq 0 $((${#bookmarks[*]} - 1))); do
	lynx -nolist -dumps "${bookmarks[$i]}" > "$WD/${bookmarks[$i]//\//_}"
	if ! cmp -s "$WD/${bookmarks[$i]//\//_}" "$WD/${bookmarks[$i]//\//_}.old"; then
		if [ ! -f "$WL"]; then
			echo -e "webwatch $(date)\n" > "$WL"
		fi
		echo "----------------" >> "$WL"
		echo "${bookmarks[$i]}" >> "$WL"
		echo "----------------" >> "$WL"
		diff "$WD/${bookmarks[$i]//\//_}.old" "$WD/${bookmarks[$i]//\//_}"  >> "$WL"
	fi
done

if [ -f "$WL"]; then
	echo -e "----------------\n" >> "$WL"
	cat "$WL" | mail -s webwatch $MAILADR
fi

rm $WD/*.old

führe ich dies unter linux aus, erhalte ich den Fehler:

$ sh webwatch.sh
sed: -e Ausdruck #1, Zeichen 32: unknown command: `3'
mv: Aufruf von stat für „/home/bjou/webwatch/*“ nicht möglich: Datei oder Verzeichnis nicht gefunden
webwatch.sh: line 35: [: missing `]'
rm: Entfernen von „/home/bjou/webwatch/*.old“ nicht möglich: Datei oder Verzeichnis nicht gefunden

FreeBSD sagt mir:
sed: 1: "/^\s\{4\}<D><H3.*>webwa ...": invalid command code 3
webwatch.sh: 15: Syntax error: Bad substitution

Es scheint also (u.a.) an dem Codefragment <\/H/3> im ersten sed Aufruf zu liegen. Eigentlich wollte ich das selbst fixen, dachte das geht relativ schnell, allerdings is sed ziemlich mächtig und unübersichtlich, wenn man noch nie damit gearbeitet hat und ich habe gerade auch keine Zeit mehr, mich da reinzusteigern, kennt sich jmd evtl damit aus und kann das Dingen mal testen?
 
dieses script soll schaun ob webseiten noch aktuell sind?
dazu gibts ein plugin fürn firefox
 
nein, das script schaut in der bookmarkdatei nach bookmarks im folder webwatch. darin befinden sich alle bookmarks, die zu überwachen sind. diese werden mit lynx heruntergeladen in textdarstellung und mit diff anschließend mit älteren versionen vergliechen.

das script schickt eine mail raus, wenn sich änderungen an der webseite ergeben haben
 
Wann setzt man sowas (sinnvoll) ein?
Ich sehe darin weder Sinn noch Zweck (warscheinlich weil ichs nicht benötige).
 
bjou schrieb:
Code:
#!/usr/local/bin/bash
...

for bookmark in $(cat $BOOKMARKS | sed "/^\s\{4\}<D><H3.*>$WF<\/H/3>/,/^\s\{4\}<\/D/L>/!d" | grep "<DT><A" | sed [/QUOTE]

Das ist gnu-sed gehampel.

Einen fix ausser install-gnu-sed oder use perl hab ich jetzt mangels motivation auch
nicht.
Das script weist zwar auf "veraltete" bookmarks hin, aber den neuen findet
es auch nicht :) - not sexy.

ciao
 
Warum einfach wenn es auch kompliziert geht.
Code:
$(grep -Eo "HREF=[^ ]+" $BOOKMARKS | grep -Eo 'http[s]{0,1}://[^"]+')
Das erste grep fischt alle HREF="..." aus der Datei, das Zweite die URLs.
 
[LoN]Kamikaze schrieb:
Ich dachte dafür verwendet man RSS Feeds.

wenn aber keine angeboten werden?! einsatzzweck: ich will verzweifelt irgendwie die fifa wm ticket seite überprüfen lassen, und zwar automatisiert, dass ich sofort ne mail bekomme, wenn wieder ticketrückläufe angekommen und somit tickets im verkauf sind.
Oder gibts da bessere wege?
 
Zurück
Oben