Dort eingeklinkt und gelesen.
Ergebnis: auf meinem Pogo läuft das Script :dance3:
Auf dem Pogo muß erstmal für das Script die Funktion "curl" eingerichtet werden.
Code:
apt-get install curl
Nach der Fertigstellung kann man das Script evtl. in /usr/script versenken. Bietet sich an, habe ich jedenfalls so gemacht.
Das Script selber ist etwas modifiziert, erfüllt aber den gleichen Zweck.
Code:
#! /bin/bash
# dyndnslogin
# DynDNS Settings
USERNAME="Username"
PASSWORD="Passwort"
# Variabeln
PROGNAME=dyndnslogin
COOKIE=/tmp/dyndnslogin_cookie
OUTPUT=/tmp/dyndnslogin_output
USERAGENT="Mozilla/5.0"
# Main
MULTIFORM=`curl -s -A $USERAGENT -c $COOKIE https://account.dyn.com \
| awk -F\' '/multiform/{ print $6 }'`
curl -s --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \
--data "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \
https://account.dyn.com/
if grep -E "Hi" $OUTPUT > /dev/null 2>&1
then
echo Login successful
date >> /var/log/dyndns.log
else
echo Login failed
FAILED="true"
fi
rm $COOKIE
rm $OUTPUT
if [ "$FAILED" = "true" ]
then
exit 1
fi
# EOF
Nachdem Username und das PWD dafür eingetragen sind, kann man das schonmal testen.
Es kam beim Original nur: Login failed - Weil dort die Abfrage stand: "Welcome.*$USERNAME", ist aber nicht mehr (?).
Damit das überhaupt Sinn macht, einen neuen Cronjob erstellen.
Als Zeit kann man ruhig wöchentlich nehmen, monatlich kann schon daneben gehen.
Hinweis von vdrschlucke: nicht vergessen, dem Script die Attribute auf 755 zu geben!
Habe das in meinen Crontabs hinzugefügt:
55 23 * * 3 root /usr/script/dyndns.sh
Somit wird das Script jeden Mittwoch um 23:55 Uhr ausgeführt.
Bei "Login successfull" wird das Datum in ein File /var/log/dyndns.log geschrieben/ dort angehangen.
Bin nämlich zu faul, jeden Client einzeln anzupassen, wenn DynDNS nicht mehr gehen würde.
Und habe auch keine Lust, da mich monatlich einmal einzuklinken, damit der Account/ Hostname erhalten bleibt :dance3:
Man beachte:
Moin,
... hier muss man potentiell auf die Ausgabe nach dem Login achten, ich werde z.B. mit "Hi <username>" begrüßt, sodass ich das "Welcome" abändern musste.
Jetzt hieße es nur noch die FritzBox anbeter zufrieden zu stellen!
Wie kann der Befehl curl, den die meisten Freetz-Images nicht zur Verfügung stellen,
durch wget ersetzt werden?
awk und grep ist an Board.
Müßte mit implementiert werden.
Kann ich aber nicht sagen, ob das per Freetz geht.
Mal rolu2 oder Gismotro anschubsen, die haben da mehr Plan, als ich.
Mit wget geht das niht, da braucht man andere Parameter dahinter.
Der Programmierer meint das ginge, aber ich vermute auch mit anderen Parametern.
Bisher hat Emanuel dazu nichts mehr geschrieben.
Wäre vll ein Fall für superhansi, der kennt sich damit aus.
Wenn du was von rolu2 oder gismotro hörst lass es mich bitte wissen.
Nur mal eine Frage dazu, wäre es auch möglich die cURL binary (mipsel) nachträglich auf den Stick zu kopieren und somit ein Neuflashen zu verhindern? Wenn ja, hat jemand eine cURL binary (mipsel Struktur für FB 7141, 7170, etc.) und kann diese hier zum Testen zur Verfügung stellen?
Ich hab das gerade mal auf nem debian ausprobiert.
Läuft soweit.
Wie kann ich aber den Erfolg testen?
Sehe ich irgendwo auf der Seite von DynDNS einen lastlogon?
Ist das nur für die 7390 möglich, nicht für 7170?
Vielleicht kannst du ja auch mal auf das Script selbst schauen.
Man könnte es evtl. anpassen. Wäew dir sehr dankbar!
Das Script soll auf einer FreetzBox 7170 laufen. Habe das Script - wie übrigens auch einige andere - mit WinSCP
auf die Box transferiert und ihm die entsprechenden Rechte vergeben. Per Telnet habe ich dann das Script
gestartet. Es meldet u.a. eine falsche Parametrierung von wget.
root@fritz:/var/mod/root# sh /var/media/ftp/uStor01/tools/scripts/dynlogin.sh
: not foundftp/uStor01/tools/scripts/dynlogin.sh: line 14:
wget: unrecognized option `--save-cookies'
BusyBox v1.18.4 (2011-04-28 23:37:45 CEST) multi-call binary.
Options:
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P DIR Save to DIR (default .)
-T SEC Network read timeout is SEC seconds
-O FILE Save to FILE ('-' for stdout)
-U STR Use STR for User-Agent header
-Y Use proxy ('on' or 'off')
Options:
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P DIR Save to DIR (default .)
-T SEC Network read timeout is SEC seconds
-O FILE Save to FILE ('-' for stdout)
-U STR Use STR for User-Agent header
-Y Use proxy ('on' or 'off')
: not foundftp/uStor01/tools/scripts/dynlogin.sh: line 17:
: not foundftp/uStor01/tools/scripts/dynlogin.sh: line 19:
/var/media/ftp/uStor01/tools/scripts/dynlogin.sh: line 38: syntax error: unexpec
ted end of file (expecting "then")
Allerdings ist das Freetz Image schon betagt. Muss mich dann wohl schweren Herzens von ihm trennen.
Bisher ist es nahezu Wartungsfrei gelaufen. Habe seit einiger Zeit eine zweite Fritz7170, an der ich jetzt ohne Zeitdruck
arbeiten kann.
Vielleicht denkt Gismotro ja an mich, ich habe ein entsprechendes Image
bei ihm bestellt.
Hi,
da scheint dem wget in deiner Busybox einiges zu fehlen.
zB.
--load-cookies=DATEI Cookies vor der Sitzung aus der DATEI laden
--save-cookies=DATEI Cookies nach der Sitzung in der DATEI speichern
--keep-session-cookies Lade und speichere (nicht-permanente) Session-Cookies
Das scheint aber bei meiner Dream auch so zu sein, da fehlt es auch und geht somit auch nicht.
Aber ohne die Cookies weiß ich nicht wie es geht, sorry.
Vieleicht fällt ja jemanden anders noch was ein.