Wie kann ich mit einem Shell Skript den Routerlog von Speedports auslesen?
Hallo Administratoren,
ich schaue mir oft den Router Log an um die Vorgänge im Netzwerk besser zu kontrollieren.
Da der Router allerdings keinen großen Speicher hat fehlen immer eine paar Einträge. Deshalb such ich nun nach einer simplen Lösung den Router Log von einem Shell Skript auszulesen und separat zu speichern.
Das Problem das dabei existiert ist die zwingend notwendigen Eingabe eines Paswortes um auf die Logseite zugreifen zu dürfen.
Die Logseite liegt bei http://speedport.ip/cgi-bin/log
Die Loginseite liegt bei http://speedport.ip/top_start_passwort.stm
Danke für eure Hilfe.
ich schaue mir oft den Router Log an um die Vorgänge im Netzwerk besser zu kontrollieren.
Da der Router allerdings keinen großen Speicher hat fehlen immer eine paar Einträge. Deshalb such ich nun nach einer simplen Lösung den Router Log von einem Shell Skript auszulesen und separat zu speichern.
Das Problem das dabei existiert ist die zwingend notwendigen Eingabe eines Paswortes um auf die Logseite zugreifen zu dürfen.
Die Logseite liegt bei http://speedport.ip/cgi-bin/log
Die Loginseite liegt bei http://speedport.ip/top_start_passwort.stm
Danke für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 214568
Url: https://administrator.de/contentid/214568
Ausgedruckt am: 16.11.2024 um 16:11 Uhr
7 Kommentare
Neuester Kommentar
Die Logs werden im Arbeitsspeciher gehalten und gehen beim Neustart verloren - https://feedback.telekom-hilft.de/topics/hallo-wie-lange-ist-die-speiche ...
Aber: Es gibt ungefähr 1000 verschiedene Speedport Modelle und Versionsnummern.
Prinzipiell sollte das aber gehen.
Und gibt es eine Funktion den Log runter zu laden oder wie bei der Fritzbox sich zusenden zu lassen?
Gruß
Netman
Aber: Es gibt ungefähr 1000 verschiedene Speedport Modelle und Versionsnummern.
Prinzipiell sollte das aber gehen.
Und gibt es eine Funktion den Log runter zu laden oder wie bei der Fritzbox sich zusenden zu lassen?
Gruß
Netman
Hallo DRwindows97,
unter Linux würde ich mich mit CURL auf der Log-Seite einloggen und den Output von CURL an GREP übergeben das dir dann die gewünschte Stelle an der der Log zu finden ist mit einer RegularExpression ausfiltert und dann in eine Datei sichert.
Für den Speedport W502V müsste folgende CURL Zeile den Login ermöglichen(damit holt man sich die Login cookies):
danach muss man sich dann z.B. mit firebug die Seiten-URL holen die den LOG enthält und den Inhalt der Seite auslesen (Habe hier keinen Speedport für die URL)
In diesem CURL-Aufruf verwendest du dann die gespeicherten Login-Cookies.
Hinweis:
Den Inhalt der Seite leitest du dann an GREP und filterst die benötigten Inhalte heraus
Als Beispiel soll dir dieses Script für eine FritzBox dienen, das die Tabelle mit den Anrufen ausließt und in eine Datei schreibt:
Hoffe das hilft dir weiter.
Grüße Uwe
unter Linux würde ich mich mit CURL auf der Log-Seite einloggen und den Output von CURL an GREP übergeben das dir dann die gewünschte Stelle an der der Log zu finden ist mit einer RegularExpression ausfiltert und dann in eine Datei sichert.
Für den Speedport W502V müsste folgende CURL Zeile den Login ermöglichen(damit holt man sich die Login cookies):
_SPEEDPORT="speedport.ip"
_PASSWORD="GEHEIM"
curl "http://${_SPEEDPORT}/cgi-bin/login.cgi" -e "http://${_SPEEDPORT}/hcti_start_passwort.stm" -d "&pws=${_PASSWORD}" -c cookies.txt
In diesem CURL-Aufruf verwendest du dann die gespeicherten Login-Cookies.
curl -s "http://${_SPEEDPORT}/status_startseite.cgi" -e "http://${_SPEEDPORT}/hcti_start_passwort.stm" -b cookies.txt
-e "http://${_SPEEDPORT}/hcti_start_passwort.stm"
ist nicht die URL die aufgerufen werden soll, sondern der REFERER.Den Inhalt der Seite leitest du dann an GREP und filterst die benötigten Inhalte heraus
Als Beispiel soll dir dieses Script für eine FritzBox dienen, das die Tabelle mit den Anrufen ausließt und in eine Datei schreibt:
#!/bin/bash
_FBOX="http://fritz.box"
_PASSWORD="GEHEIM"
_OUTPUTFILE="calls.txt"
_CHALLENGE=$(curl -s ${_FBOX}/login.lua | grep "^g_challenge" | awk -F '"' '{ print $2 }')
_MD5=$(echo -n ${_CHALLENGE}"-"${_PASSWORD} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
_RESPONSE=${_CHALLENGE}"-"${_MD5}
_SID=$(curl -i -s -k -d 'response='${_RESPONSE} -d 'page=' ${_FBOX}/login.lua | grep "Location:" | awk -F '=' {' print $NF '})
curl -s ${_FBOX}/fon_num/foncalls_list.lua -d 'sid='${_SID} | tr -d '\n' | grep -oP '(?<=<table id="uiCalls" class="zebra_reverse">).*?(?=</table>)' >$_OUTPUFILE
Hoffe das hilft dir weiter.
Grüße Uwe
du würdest uns einen Gefallen tun wenn du zum posten von Code Tags verwenden würdest, dann käme es nämlich nicht zu solch einem Phänomen das z.B. die doppelten Slashes verschwinden wie hier
außerdem hast du ein doppeltes
Deine Zeilen sehen dann wenn die Variable
und das geht natürlich gar nicht. Du müsst dich schon entscheiden wo du das "http" hinterlegst, doppelt gemoppelt geht nicht.
Außerdem war die Option
nochmal zusammengefasst für dich:
wobei hier ja noch die ganze HTML-Datei im OUTPUTFILE landet. Da ich die Seite hier nicht vor mir habe kann ich dir dazu natürlich kein Code liefern.
Noch ein Hinweis falls es nicht funktioniert: Das CURL-Script gilt für den Speedport W502V Fw 1.17 (Typ A). Könnte sein das sich da bei einer neueren Firmware noch was verändert hat.
Eine Liste für die Speedports findet sich hier.
Grüße Uwe
_BOX="http:speedport.ip"
http:
eingebaut.Deine Zeilen sehen dann wenn die Variable
_BOX
aufgelöst wird so aushttp://http:speedport.ip/cgi-bin
Außerdem war die Option
-c Cookies.txt
im zweiten curl-Aufruf falsch. Sie muss -b Cookies.txt
lauten da du die im vorangegangen Aufruf gespeicherten Cookies ja übergeben willst.nochmal zusammengefasst für dich:
_BOX="http://speedport.ip"
_PASSWORD="123456"
_OUTPUTFILE="routerlogfile.txt"
curl "${_BOX}/cgi-bin/login.cgi" -e "${_BOX}/top_start_passwort.stm" -d "&pws=${_PASSWORD}" -c cookies.txt
curl -s "${_BOX}/cgi-bin/log" -e "${_BOX}/top_start_passwort.stm" -b cookies.txt >$_OUTPUTFILE
Noch ein Hinweis falls es nicht funktioniert: Das CURL-Script gilt für den Speedport W502V Fw 1.17 (Typ A). Könnte sein das sich da bei einer neueren Firmware noch was verändert hat.
Eine Liste für die Speedports findet sich hier.
Grüße Uwe
Hallo,
ich bin auch nach der Suche für so eine Anmeldung und Log-File-Auslesen Sache.
Mein Router ist ein Speedport 921V
die Loginseite lautet:
die Seite mit dem Logfile:
die Infos liegen dort aber ziemlich verschachtelt: s. Screenshoot:
<img>http://fs2.directupload.net/images/150211/98iqhbag.png</img>
man kann einen Download des Logfiles erzeugen, das geht über einen Button:
-
ich bin leider Linux Neuling. Kann man da ein Script für ein Raspberry machen, das das Logfile dann via Mail verschickt 1x die Woche oder so etwas?
ich bin auch nach der Suche für so eine Anmeldung und Log-File-Auslesen Sache.
Mein Router ist ein Speedport 921V
die Loginseite lautet:
https://speedport.ip/html/login/index.html
die Seite mit dem Logfile:
https://speedport.ip/html/content/config/system_info.html?lang=de
die Infos liegen dort aber ziemlich verschachtelt: s. Screenshoot:
<img>http://fs2.directupload.net/images/150211/98iqhbag.png</img>
man kann einen Download des Logfiles erzeugen, das geht über einen Button:
<form action="../../../data/Syslog.json" method="get">
<div class="buttongroup" style="padding:0px">
<button type="submit" i18n:id="btn_exportList">Liste exportieren</button>
</div>
</form>
-
ich bin leider Linux Neuling. Kann man da ein Script für ein Raspberry machen, das das Logfile dann via Mail verschickt 1x die Woche oder so etwas?