• Kunden aus Hessen und Nordrhein-Westfalen können über die Rufnummer 0221 / 466 191 00 Hilfe bei allen Problemen in Anspruch nehmen.
    Kunden aus Baden-Württemberg können über die Rufnummer 0711 / 54 888 150 Hilfe bei allen Problemen in Anspruch nehmen.

Unitymedia TC4400 ueber WebUI automatisiert beobachten

Diskutiere TC4400 ueber WebUI automatisiert beobachten im Internet und Telefon über das TV-Kabelnetz Forum im Bereich Internet und Telefon; um die 'Uncorrectable Codewords' und andere wichtige Modem-Parameter per cronjob zu beobachten habe ich ein kleines Script geschrieben. EInfach...
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #1

sparkie

Beiträge
821
Punkte Reaktionen
54
um die 'Uncorrectable Codewords' und andere wichtige Modem-Parameter per cronjob zu beobachten habe ich ein kleines Script geschrieben. EInfach mit z.B.
Code:
<i>
</i>0-59/5 * * * * ~/bin/scan_tc4400
per
Code:
<i>
</i>crontab -e
einhaengen. Falls nun eine Aenderung der ausgelesenen Modemdaten (z.B. Down/Up Frequenzen, 'Uncorrectable Codewords', IP-WAN Adresse etc.) entdeckt wird ergeht eine Email.

Als Seiteneffekt wird zudem in '/tmp/scan_tc4400_raw' bei jedem Aufruf eine Uebersicht der wichtigeren Modemdaten in plain ASCII abgelegt.

Script '~/bin/scan_tc4400':
Code:
<i>
</i>#/bin/sh
CABLE_MODEM=192.168.100.1
scan()
{
wget -q --http-user=admin --http-password='bEn2o#US9s' $1 -O - |
awk '{ if (match($0, "<script")) { ++IGNORE } else if (IGNORE) { if (match($0, "/script?")) { IGNORE = 0 } } else { print }
}' |
lynx -nolist -width 300 -dump -stdin
}
for i in \
http://$CABLE_MODEM/info.html \
http://$CABLE_MODEM/arpview.cmd \
http://$CABLE_MODEM/cmswinfo.html \
http://$CABLE_MODEM/cmconnectionstatus.html
do
echo
echo ------------------ [ $i ] ------------------
echo
scan $i
done > /tmp/scan_tc4400_raw
awk '{ # patch fields to ignore if ($3 == "Locked" && match($11, "^[0-9.]+$")) $11 = "c_1" # up/downstream if ($3 == "Locked" && match($13, "^[0-9.]+$")) $13 = "c_2" # downstream if ($3 == "Locked" && match($16, "^[0-9]+$")) $16 = "c_3" # downstream if ($3 == "Locked" && match($17, "^[0-9]+$")) $17 = "c_4" # downstream if (match($0, "Current System Time:")) $0 = "c_5" if (match($0, "IPv4=.*D:.*H:.*M:.*S:")) $0 = "c_6" if (match($0, "REFRESH.*file://.*html")) $0 = "c_7" if (match($0, "Uptime: ")) $0 = "c_8" if (match($0, "Systime: ")) $0 = "c_9" print
'} < /tmp/scan_tc4400_raw > /tmp/scan_tc4400_new
[ -f /tmp/scan_tc4400_old ] && diff /tmp/scan_tc4400_old /tmp/scan_tc4400_new
mv /tmp/scan_tc4400_new /tmp/scan_tc4400_old
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #2
Klasse Idee und Arbeit! Ich hab das nun mal in meiner pfSense eingefügt, bekomme aber die Meldung
Code:
Jun 24 08:19:00	cron	44142	login_getclass: unknown class 'scan_tc4400 # #'

Die scan_tc4400 habe ich in /usr/bin/ gelegt und dorthin verweist auch der cronjob.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #3
sieht nach einer pfSense spezifischen Meldung aus. Mit pfSense kenne ich mich leider nicht aus.

Hillft es vielleicht das Script mit Endung '.sh' zu versehen?

Von Hand aufgerufen funktioniert alles?
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #4
Leider auch nicht ganz:
Code:
<i>
</i>[2.4.3-RELEASE][[email protected]]/usr/bin: scan_tc4400.sh
CABLE_MODEM=192.168.100.1: Command not found.
Badly placed ()'s.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #5
pfsense scheint ein wenig speziell zu sein :smile:
leider habe ich keines zum Testen. Hier waere noch eine modifizierte Version ohne sh-Funktionen:
Code:
<i>
</i>#!/bin/sh
CABLE_MODEM=192.168.100.1
for i in \
http://$CABLE_MODEM/info.html \
http://$CABLE_MODEM/arpview.cmd \
http://$CABLE_MODEM/cmswinfo.html \
http://$CABLE_MODEM/cmconnectionstatus.html
do
wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' $i -O - |
awk '{ if (!HEAD++) { print "------------------ [ '$i' ] ------------------" } if (match($0, "<script")) { ++IGNORE } else if (IGNORE) { if (match($0, "/script?")) { IGNORE = 0 } } else { print }
}'
done |
lynx -nolist -width 300 -dump -stdin > /tmp/scan_tc4400_raw
awk '{ # patch fields to ignore if ($3 == "Locked" && match($11, "^[0-9.]+$")) $11 = "c_1" # up/downstream if ($3 == "Locked" && match($13, "^[0-9.]+$")) $13 = "c_2" # downstream if ($3 == "Locked" && match($16, "^[0-9]+$")) $16 = "c_3" # downstream if ($3 == "Locked" && match($17, "^[0-9]+$")) $17 = "c_4" # downstream if (match($0, "Current System Time:")) $0 = "c_5" if (match($0, "IPv4=.*D:.*H:.*M:.*S:")) $0 = "c_6" if (match($0, "REFRESH.*file://.*html")) $0 = "c_7" if (match($0, "Uptime: ")) $0 = "c_8" if (match($0, "Systime: ")) $0 = "c_9" print
'} < /tmp/scan_tc4400_raw > /tmp/scan_tc4400_new
[ -s /tmp/scan_tc4400_old ] && diff /tmp/scan_tc4400_old /tmp/scan_tc4400_new
mv /tmp/scan_tc4400_new /tmp/scan_tc4400_old
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #6
Gute Idee, ich hab das Ganze dann noch etwas weiter getrieben. :D




Grüße Marcus
 

Anhänge

  • docsis_down_errcor-week.png
    docsis_down_errcor-week.png
    39,7 KB · Aufrufe: 2.968
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #7
Das Shebang ist falsch, es muß #!/bin/sh heißen, nicht #/bin/sh

Die globale crontab enthält ein Feld mehr, nämlich den Benutzeraccount vor dem Pfad zum Befehl (deswegen die Fehlermeldung von cron).

/usr/bin ist nicht der richtige Ort, um ein Script abzulegen, das ist dann nämlich beim nächsten System-Upgrade weg. Das gehört schon nach $HOME.

Scripte trägt man robuster so in die crontab ein:
Code:
/bin/sh /wo/auch/immer/scan_tc4400

Dann ist man nämlich nicht abhängig von Shebang und Permissions.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #8
wow das sieht ja richtig gut aus :smile:

ich denke es wird langsam Zeit ein Repository fuer das TC4400 auf github (andere Vorschlaege?) aufzumachen.

Alleine schon wegen des Tools fuer . Da ist anscheinend nie eine brauchbare Source irgendwo eingestellt worden? Richtig?
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #9
Leider auch nicht ganz:
Code:
<i>
</i>[2.4.3-RELEASE][[email protected]]/usr/bin: scan_tc4400.sh
CABLE_MODEM=192.168.100.1: Command not found.
Badly placed ()'s.

Das sieht mir aber eher nach einem pfsense spezifischen Problem aus.
Bei mir läuft das Script sauber durch, außer dass OSX eben wget nicht kennt. Das war mir aber vorher klar.
Auf meinem Ubuntu-Server läuft die Geschichte sauber durch! :hammer:
ich denke es wird langsam Zeit ein Repository fuer das TC4400 auf github (andere Vorschlaege?) aufzumachen.
Entweder bei GitHub oder bei Bitbucket.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #11
Bei mir läuft das Script sauber durch, außer dass OSX eben wget nicht kennt. Das war mir aber vorher klar.
Das liegt daran, daß macOS seit Version 10.4 für alle Scripte /bin/bash nutzt. :zwinker:
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #12
Ich habe es nun direkt in /bin/ gelegt, doch bekomme auch ohne sh Funktionen noch immer:
Code:
[2.4.3-RELEASE][[email protected]]/bin: scan_tc4400
CABLE_MODEM=192.168.100.1: Command not found.
CABLE_MODEM: Undefined variable.
 

Anhänge

  • cron1.jpg
    cron1.jpg
    117,4 KB · Aufrufe: 2.887
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #14
/bin/sh /bin/scan_tc4400.sh müßte aber auch auf der Shell funktionieren.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #15
OK, damit nicht mehr. Nur wget geht nicht.
Code:
[2.4.3-RELEASE][[email protected]]/bin: scan_tc4400
/bin/scan_tc4400: wget: not found
/bin/scan_tc4400: lynx: not found
/bin/scan_tc4400: wget: not found
/bin/scan_tc4400: wget: not found
/bin/scan_tc4400: wget: not found

Ich habe die Datei nun nur scan_tc4400 genannt, nicht scan_tc4400.sh
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #16
Klar, pfSense ist halt eine reine Firewall-Distribution. wget könnte man mit fetch ersetzen (und die Syntax anpassen), aber lynx gibt es da nicht.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #17
Ich hab halt sonst keinerlei Linux, von daher gibt es keine andere Möglichkeit für mich.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #18
/bin/sh ist nicht sinnvoll für jedes Script. Viele Systeme, grade embedded, nehmen irgendeine beliebige Shell dafür.
Die ursprüngliche Version aus dem ersten Beitrag müsste mit der /bin/bash ausgeführt werden, so sie existiert oder installiert werden kann.

@rv112: Nimm einen Pi :)
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #19
Mit welchem OS am besten? Einen Pi habe ich hier noch herumliegen.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #20
Ich hab halt sonst keinerlei Linux, von daher gibt es keine andere Möglichkeit für mich.
Natürlich gibt es die: USB-Stick hernehmen, Ubuntu 18.04 herunterladen auf darauf installieren, und schon hast Du Linux. Das "Spielsystem" auf Deinem Rechner brauchst Du dabei nicht einmal anzufassen.
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #21
/bin/sh ist nicht sinnvoll für jedes Script. Viele Systeme, grade embedded, nehmen irgendeine beliebige Shell dafür.
/bin/sh ist immer die Standard-POSIX-Shell. Daran hält sich auch pfSense. Ändert natürlich nichts daran, daß es ein Firewall-Betriebssystem ist und nur mit viel Gebastel einen Browser wie Lynx ausführen wird. :D
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #22
ich hab jetzt mal auf Github ein Repository eingerichtet.

Es ist eigentlich dafuer vorgesehen demnaechst eine oeffentliche Version von einzustellen. Nachdem es eine solche trotz vieler Ankuendigungen bis heute anscheinend nirgends gibt. Ich teste gerade schon eine Version mit einem Raspberry, einem Sundtek DVB-C USB Stick und natuerlich dem TC4400. Stay tuned :smile:

Der Einfachheit halber habe ich jetzt die letzte Version von 'scan_tc4400' ebenfalls dorthin kopiert: https://raw.githubusercontent.com/sp4rkie/docsis-cable-load-monitor/master/scan_tc4400

Verbesserungsvorschlaege willkommen...
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #23
Das mit der Auslastung interessiert mich ja auch schon lange. Aber als Linuxnoob habe ich mich da noch nicht wirklich ran getraut. Falls es mittels Pi auch für Anfänger irgendwie nachvollziehbar möglich wäre, wäre das wirklich klasse :)
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #24
ja, ich schau mal, dass ich das im Laufe der naechsten Woche gebacken bekomme. Wenn man erst mal alles auf die genannte spezielle Hardware beschraenkt sollte es einfach nachvollziehbar sein...
 
  • TC4400 ueber WebUI automatisiert beobachten Beitrag #25
Gute Idee, ich hab das Ganze dann noch etwas weiter getrieben. :D


docsis_down_errcor-week.png


Grüße Marcus

Das sieht nach einer rrdtool Grafik aus. Du hast allerdings einen unpassenden data source type angegeben. Wenn du COUNTER statt GAUGE angibst, dann hast du eine endlos fortgeschriebene Zahl der Fehler pro Zeitintervall. Ich habe sowas für meine Fritzbox gemacht, das sieht dann z.B. so aus: (m sind milli pro Sekunde - aktuell treten bei mir praktisch keine Fehler auf)
dailyweekly
montlyyearly
 

Anhänge

  • cacti_graph_259_rra4-day.png
    cacti_graph_259_rra4-day.png
    100,6 KB · Aufrufe: 1.944
  • cacti_graph_259_rra4-week.png
    cacti_graph_259_rra4-week.png
    126,4 KB · Aufrufe: 1.944
  • cacti_graph_259_rra4-month.png
    cacti_graph_259_rra4-month.png
    125,8 KB · Aufrufe: 1.944
  • cacti_graph_259_rra4-year.png
    cacti_graph_259_rra4-year.png
    51,7 KB · Aufrufe: 1.944
Thema:

TC4400 ueber WebUI automatisiert beobachten

TC4400 ueber WebUI automatisiert beobachten - Ähnliche Themen

Unitymedia [UM] Internetschluckauf seit 10.12. / Modemwerte: Hallo liebes Forum, ich bräuchte mal eine Interpretationshilfe zu folgenden Modemwerten meines TC4400. Zu Fritzboxzeiten habe ich mich bisher...
Unitymedia Unerklärliches Verhalten nach Umstellung auf CableMax 1000: Hallo zusammen. Kurze Zusammenfassung der letzten Wochen: Nach Umstellung auf CableMax 1000 hörte mein Plex Server (auf einer Synology) auf...
Unitymedia Upload Probleme in 40489 tagsüber: Guten Tag zusammen, ca. seit 1 Woche ist mein 2Play 50 Anschluss massiv gestört. Meiner Einschätzung nach liegt es hauptsächlich an den niedrigen...
Unitymedia Regelmäßig hohe Pings und Packet Loss: Guten Abend, ich habe seit 2 Wochen das Problem, dass der Ping alle 20 Sekunden von 8-13ms auf 100-300ms für 1-2 Pings steigt. Die Tage hat ein...
Unitymedia Instabile Download und Upload Werte: Hallo Leute, ich habe seit 3 Wochen massive Probleme mit meiner Unitmedia Leitung (Hessen). Es waren schon 4 Techniker da die allesamt...
Oben