- Mitglied seit
- 10 Mrz 2008
- Beiträge
- 2,223
- Punkte für Reaktionen
- 106
- Punkte
- 63
Hallo,
ich habe ein Shellscript, das regelmäßig das Telefonbuch meiner 7390 auslesen soll. Seit der FW 6.51 geht das aber nicht mehr.
Es gibt, bei der Ausführung des Scriptes, aber auch keine Fehlermeldung.
Das Script:
Das Script ist nach wenigen Sekunden (nicht einmal zwei, oder so) Fertig. Die Zieldatei wird nicht geschrieben/verändert. (Dann wäre mir das früher aufgefallen)
Ruft man das mit "bash -x script.sh" auf, bekommt man das folgende als Ausgabe:
Irgendwie irritiert mich das - vor dem Password "abc123" in der Zeile "echo -n -abc123"
Das Script lief, ohne Änderung, bis zum 29.9.2016 wie gewünscht, an dem folgenden Tag hat sich die F!B die aktuelle FW geholt.
Irgend ein Vorschlag?
ich habe ein Shellscript, das regelmäßig das Telefonbuch meiner 7390 auslesen soll. Seit der FW 6.51 geht das aber nicht mehr.
Es gibt, bei der Ausführung des Scriptes, aber auch keine Fehlermeldung.
Das Script:
Code:
#!/bin/bash
# Telefonbuch der Fritzbox in XML-Datei auslesen
PATH=/usr:/usr/bin:/bin
ziel_pfad=/var/www/html/telefon
ziel_datei=FRITZ.xml
# FritzBox credentials
_FBOX="http://fritz.box"
_USERNAME=""
_PASSWORD="abc123"
_PhonebookId="0"
_PhonebookExportName="Telefonbuch"
# get challenge key from FB
_CHALLENGE=$(curl -s \
-k \
"${_FBOX}/login.lua" | \
grep "^g_challenge" | \
awk -F'"' '{ print $2 }')
# build md5 from challenge key and password
_MD5=$(echo -n \
${_CHALLENGE}"-"${_PASSWORD} | \
iconv -f ISO8859-1 \
-t UTF-16LE | \
md5sum -b | \
awk '{print substr($0,1,32)}')
# assemble challenge key and md5
_RESPONSE=${_CHALLENGE}"-"${_MD5}
# get sid for later use
_SID=$(curl -i \
-s \
-k \
-d 'response='${_RESPONSE} \
-d 'page=' \
-d 'username='${_USERNAME} \
${_FBOX}/login.lua | \
grep "Location:" | \
awk -F'=' {' print $NF '})
# get configuration from FB and write to STDOUT
curl -s \
-k \
--form 'sid='${_SID} \
--form 'PhonebookId='${_PhonebookId} \
--form 'PhonebookExportName='${_PhonebookExportName} \
--form 'PhonebookExport=' \
${_FBOX}/cgi-bin/firmwarecfg \
-o ${ziel_pfad}/${ziel_datei}
Das Script ist nach wenigen Sekunden (nicht einmal zwei, oder so) Fertig. Die Zieldatei wird nicht geschrieben/verändert. (Dann wäre mir das früher aufgefallen)
Ruft man das mit "bash -x script.sh" auf, bekommt man das folgende als Ausgabe:
Code:
+ PATH=/usr:/usr/bin:/bin
+ ziel_pfad=/var/www/html/telefon
+ ziel_datei=FRITZ.xml
+ _FBOX=http://fritz.box
+ _USERNAME=
+ _PASSWORD=abc123
+ _PhonebookId=0
+ _PhonebookExportName=Telefonbuch
++ awk '-F"' '{ print $2 }'
++ grep '^g_challenge'
++ curl -s -k http://fritz.box/login.lua
+ _CHALLENGE=
++ md5sum -b
++ awk '{print substr($0,1,32)}'
++ echo -n -abc123
++ iconv -f ISO8859-1 -t UTF-16LE
+ _MD5=043d1dcf791db2969cf0f2508d9e5dec
+ _RESPONSE=-043d1dcf791db2969cf0f2508d9e5dec
++ awk -F= '{ print $NF }'
++ grep Location:
++ curl -i -s -k -d response=-043d1dcf791db2969cf0f2508d9e5dec -d page= -d username= http://fritz.box/login.lua
' _SID='Location: http://fritz.box/
+ curl -s -k --form sid=Location: $'http://fritz.box/\r' --form PhonebookId=0 --form PhonebookExportName=Telefonbuch --form PhonebookExport= http://fritz.box/cgi-bin/firmwarecfg -o /var/www/html/telefon/FRITZ.xml
Irgendwie irritiert mich das - vor dem Password "abc123" in der Zeile "echo -n -abc123"
Das Script lief, ohne Änderung, bis zum 29.9.2016 wie gewünscht, an dem folgenden Tag hat sich die F!B die aktuelle FW geholt.
Irgend ein Vorschlag?