PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anregungen für ein Shellskript



crazyPower
29-06-2005, 22:13
Hallo zusammen,

ich bin recht neu was bash-skripting angeht, und habe eine Idee, die ich damit verwirklichen will:
auf http://webgw.avm.de:8080/download/UpdateNews.jsp?lang=de stellt avm immer die neuesten Updates ein. Ich habe eine Fritzbox WLAN 7050. Nun soll mein Skript 1x am Tag (per cronjob) die obige Datei herunterladen, durchsuchen, ob 7050 drin vorkommt, und das darauf folgende Datum das heutige (oder gestrige) ist. Wenn das zutrifft, soll per sendmail eine mail mit dem Downloadlink an meine e-mailadresse geschickt werden.

nun, da ich wie gesagt anfänger bin, sieht mein skript bisher so aus:


#!/bin/bash

wget http://webgw.avm.de:8080/download/UpdateNews.jsp?lang=de -O avmupdates.html

cat avmupdates.html | grep "7050" -A 100 >> datei

exit 0


Damit schreibt er mir die auf die Zeichenfolge "7050" folgenden 100 Zeilen in die datei "datei".
Soweit so gut. Nur wie kann ich in dem html-Wust das Datum herausfiltern und gegen das heutige prüfen?

Danke für alle Tipps und Anregungen.

cu

cP

ThorstenS
30-06-2005, 17:51
Ich würde einfach das Datum auf dem FTP Server untersuchen.



echo -e "cd cardware/fritzbox.fon_wlan_7050/firmware/ \n ls -lsa *7050*" | ncftp ftp.avm.de | grep image

Das liefert dir schon mal sowas:
-r--r--r-- 1 14 50 3850240 Jun 24 14:34 fritz.box_fon_wlan_7050.14.03.68.image

Wenn du nun noch ein awk hinten dran machst, hast du das Datum:

echo -e "cd cardware/fritzbox.fon_wlan_7050/firmware/ \n ls -lsa *7050*" | ncftp ftp.avm.de | grep image | awk '{print $6,$7}'


Ich hab leider kaum noch Zeit heute, ich bin sicher, dass du mittels date -d ... die Differenz ausrechnen kannst. Dir hilft bestimmt noch jemand heute, oder :cool:

`kk
30-06-2005, 19:09
Hi!
Also ich brauch sowas zwar grade nicht, aber mir war langweilig.
Es geht bestimmt besser, aber es funktioniert: :)



#!/bin/bash

# Ziel-URL
URL=http://webgw.avm.de:8080/download/UpdateNews.jsp?lang=de

wget $URL -O bla.html &> /dev/null # Seite runterladen und
md5sum -c bla.html.md5 &> /dev/null # MD5-Summe erstellen

# MD5-Überprüfung war erfolgreich -> keine Veränderungen
if [ $? -eq 0 ]; then
echo "Keine neuen Updates..."
else
# Seite wurde verändert oder zum erstem Mal runtergeladen
md5sum bla.html > bla.html.md5
echo "Updates vorhanden!!!1!"

# Mail verschicken
fi

Kommentare stehen ja drin.
Ich hoffe es hilft. :)

Gruß
Kai

PS:
Ah Mist ich sehe grade, dass da nicht nur der eine Treiber aufgeführt wird.
Sorry, ... nich gesehen.

`kk
30-06-2005, 20:08
So... ich hoffe ich habe es jetzt richtig verstanden... :D
Also er lädt immer nur das Update von heute sozusagen runter... sonst hätte es mir jetzt zu lange dauert.

Teste es mal bitte und sag mir dann, obs funktioniert:


#!/bin/bash
#set -x

URL=http://webgw.avm.de:8080/download/UpdateNews.jsp?lang=de


wget $URL -O .avm.site &> /dev/null
html2text .avm.site | grep 7050 -A 3 > .avm.part

last_version=$(grep "Version" .avm.part | awk '{print $2}')
last_date=$(grep "Datum" .avm.part | awk '{print $4}')


# TODO: Bitte das hier mit dem Datum verbessern! =)
current_date=$(date +%d.%m.%Y)


if [ $current_date != $last_date ]; then
echo "Heute keine neue Firmware! :("
else
wget ftp://ftp.avm.de/cardware/fritzbox.fon_wlan_7050/firmware/fritz.box_fon_wlan_7050.$last_version.image > /dev/null

# Mail versenden:
# Update liegt bereit im Download-Verzeichnis ;)
fi

rm .avm.*


Falls du was nicht verstehst, schreib's hier rein.

Gruß
Kai

PS:
Ging eben nicht, jetzt ists gefixt.
Achso... du brauchst html2text. :p

crazyPower
01-07-2005, 08:03
hallo,

danke für die Antworten. Ist bestimmt was dabei. Bin aber gerade auf arbeit. Ich werde das heute oder das WOE mal durchtesten, und dann hier meine Lösung posten.

Die eleganteste Lösung scheint mir aber die Lösung mitdem FTP-Datums-Check zu sein... Wieso bin ich da nicht drauf gekommen :confused:
Das Frage ich mich immer, wenn ich in einem Forum eine Frage stelle, und mir jemand eine dermassen logische antwort gibt...

nichtsdesdotrotz werde ich auch das html2text konstrukt ausprobieren. Einfach um das "bashing" zu erlernen.

cu

cP

`kk
01-07-2005, 11:47
Aha und was machst du, wenn die Datei gar nicht neu ist?
Z.B. wurde sie auf dem FTP-Server gelöscht und (warum auch immer) die gleiche Version, die vorher schon da lag, hochgeladen.
Die Version hast du aber schon... usw. ;)

Naja, schreib mir ne PN, ob mein Script funktioniert.

Gruß
Kai

crazyPower
04-07-2005, 05:29
Hallo,

ich hab dein Skript mal das WOE ausprobiert. Hat hervorragend funktioniert. Danke.

Jetzt muss ichs nur ein wenig erweitern....

Danke

cP

`kk
04-07-2005, 19:47
Hey, freut mich! :)

Gruß
Kai