• 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.

Auslastung des eigenen Segments ansehen (reloaded)

Diskutiere Auslastung des eigenen Segments ansehen (reloaded) im Internet und Telefon über das TV-Kabelnetz Forum im Bereich Internet und Telefon bei Unitymedia; Mit einem Cleaninstall bekomme ich dazu: sudo sh CableLoadMonitor trying to retrieve downstream channel frequencies from TC4400 modem downstream...

rv112

Beiträge
4.059
Reaktionen
107
Mit einem Cleaninstall bekomme ich dazu:

Code:
sudo sh CableLoadMonitor
trying to retrieve downstream channel frequencies from TC4400 modem
downstream channel frequencies now in use: could not retrieve any
exiting...
 

rv112

Beiträge
4.059
Reaktionen
107
das *.log der aktuellen Version waere interessant. Daraus ersieht man ja welche Frequenz er mit welchen Tunern misst.
Reiche ich nach, sobald es wieder geht :)

Hier der aktuelle Log mit Cleaninstall:

Code:
====== [ 1918 ] program start [So Mär 22 07:31:26 CET 2020] on raspberry3 ======
CableLoadMonitor||||||||||||||||||||
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.cfg' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.cfg)$>
ls: Zugriff auf '/home/pi/CableLoadMonitor.cfg' nicht möglich: Datei oder Verzeichnis nicht gefunden
no match
trying to retrieve downstream channel frequencies from TC4400 modem
ex_line open: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
ex_line close: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
downstream channel frequencies now in use: could not retrieve any
exiting...
CableLoadMonitor exits with: 1 error(s)
====== [ 1918 ] program stop [So Mär 22 07:31:36 CET 2020] on raspberry3 ======
 

rv112

Beiträge
4.059
Reaktionen
107
Nein, nix geändert. http://192.168.100.1/cmconnectionstatus.html erreiche ich ebenfalls via Browser. (Eventuell ein Zeitproblem? Dauert gute 5 Sekunden bist die Seite aufgerufen wird)

Hier noch der komplette Log, wenn ich die alte .config nutze:

Code:
====== [ 1918 ] program start [So Mär 22 07:31:26 CET 2020] on raspberry3 ======
CableLoadMonitor||||||||||||||||||||
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.cfg' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.cfg)$>
ls: Zugriff auf '/home/pi/CableLoadMonitor.cfg' nicht möglich: Datei oder Verzeichnis nicht gefunden
no match
trying to retrieve downstream channel frequencies from TC4400 modem
ex_line open: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
ex_line close: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
downstream channel frequencies now in use: could not retrieve any
exiting...
CableLoadMonitor exits with: 1 error(s)
====== [ 1918 ] program stop [So Mär 22 07:31:36 CET 2020] on raspberry3 ======
====== [ 2066 ] program start [So Mär 22 07:32:47 CET 2020] on raspberry3 ======
CableLoadMonitor||||||||||||||||||||
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.cfg' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.cfg)$>
ls: Zugriff auf '/home/pi/CableLoadMonitor.cfg' nicht möglich: Datei oder Verzeichnis nicht gefunden
no match
trying to retrieve downstream channel frequencies from TC4400 modem
ex_line open: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
ex_line close: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
downstream channel frequencies now in use: could not retrieve any
exiting...
CableLoadMonitor exits with: 1 error(s)
====== [ 2066 ] program stop [So Mär 22 07:32:57 CET 2020] on raspberry3 ======
====== [ 2166 ] program start [So Mär 22 07:33:24 CET 2020] on raspberry3 ======
CableLoadMonitor||||||||||||||||||||
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.cfg' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.cfg)$>
/home/pi/CableLoadMonitor.cfg
first match: </home/pi/CableLoadMonitor.cfg>
ex_line open: { cat /home/pi/CableLoadMonitor.cfg; } 2>&1
ex_line close: { cat /home/pi/CableLoadMonitor.cfg; } 2>&1
evaluating given downstream channel frequencies
downstream channel frequencies now in use: [ 31 ]
474/QAM256 482/QAM256 490/QAM256 498/QAM256 522/QAM256 530/QAM256 538/QAM256
546/QAM256 554/QAM256 562/QAM256 570/QAM256 578/QAM256 586/QAM256 594/QAM256
602/QAM256 618/QAM256 626/QAM256 634/QAM256 642/QAM256 650/QAM256 658/QAM256
666/QAM256 674/QAM256 682/QAM256 690/QAM256 698/QAM256 706/QAM256 746/QAM256
754/QAM256 762/QAM256 770/QAM256
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.rrd' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.rrd)$>
ls: Zugriff auf '/home/pi/CableLoadMonitor.rrd' nicht möglich: Datei oder Verzeichnis nicht gefunden
no match
the RRD does not exist
values of monitored channel frequencies did change
graph display mode: standard
graph destination dir: /home/pi/
recording RRA step size: 10 seconds
recording RRA history size: 70 day(s) 0 hour(s) 0 minute(s) 0 second(s)
using multiple tuners: in parallel (if applicable)
dvb failure recovery method: retry
generating graph for: 1h recording length, size 1400x1000 pixels
generating graph for: 6h recording length, size 1400x1000 pixels
generating graph for: 1d recording length, size 1400x1000 pixels
generating graph for: 7d recording length, size 1400x1000 pixels
generating graph for: 30d recording length, size 1400x1000 pixels
(re)creating the RRD base
CMD: /bin/bash -c 'rrdtool create /home/pi/CableLoadMonitor.rrd -s 1 \
DS:f00:GAUGE:120:U:U \
DS:f01:GAUGE:120:U:U \
DS:f02:GAUGE:120:U:U \
DS:f03:GAUGE:120:U:U \
DS:f04:GAUGE:120:U:U \
DS:f05:GAUGE:120:U:U \
DS:f06:GAUGE:120:U:U \
DS:f07:GAUGE:120:U:U \
DS:f08:GAUGE:120:U:U \
DS:f09:GAUGE:120:U:U \
DS:f10:GAUGE:120:U:U \
DS:f11:GAUGE:120:U:U \
DS:f12:GAUGE:120:U:U \
DS:f13:GAUGE:120:U:U \
DS:f14:GAUGE:120:U:U \
DS:f15:GAUGE:120:U:U \
DS:f16:GAUGE:120:U:U \
DS:f17:GAUGE:120:U:U \
DS:f18:GAUGE:120:U:U \
DS:f19:GAUGE:120:U:U \
DS:f20:GAUGE:120:U:U \
DS:f21:GAUGE:120:U:U \
DS:f22:GAUGE:120:U:U \
DS:f23:GAUGE:120:U:U \
DS:f24:GAUGE:120:U:U \
DS:f25:GAUGE:120:U:U \
DS:f26:GAUGE:120:U:U \
DS:f27:GAUGE:120:U:U \
DS:f28:GAUGE:120:U:U \
DS:f29:GAUGE:120:U:U \
DS:f30:GAUGE:120:U:U \
DS:sum:GAUGE:120:U:U \
RRA:AVERAGE:0.1:10:604800' 2>&1
scanning output for: <(.)>
====== [ 2224 ] program start [So Mär 22 07:34:00 CET 2020] on raspberry3 ======
CableLoadMonitor|-t|/var/www/html/||||||||||||||||||
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.cfg' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.cfg)$>
/home/pi/CableLoadMonitor.cfg
first match: </home/pi/CableLoadMonitor.cfg>
ex_line open: { cat /home/pi/CableLoadMonitor.cfg; } 2>&1
ex_line close: { cat /home/pi/CableLoadMonitor.cfg; } 2>&1
evaluating given downstream channel frequencies
downstream channel frequencies now in use: [ 31 ]
474/QAM256 482/QAM256 490/QAM256 498/QAM256 522/QAM256 530/QAM256 538/QAM256
546/QAM256 554/QAM256 562/QAM256 570/QAM256 578/QAM256 586/QAM256 594/QAM256
602/QAM256 618/QAM256 626/QAM256 634/QAM256 642/QAM256 650/QAM256 658/QAM256
666/QAM256 674/QAM256 682/QAM256 690/QAM256 698/QAM256 706/QAM256 746/QAM256
754/QAM256 762/QAM256 770/QAM256
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.rrd' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.rrd)$>
ls: Zugriff auf '/home/pi/CableLoadMonitor.rrd' nicht möglich: Datei oder Verzeichnis nicht gefunden
no match
the RRD does not exist
CMD: /bin/bash -c 'mkdir -p /var/www/html/' 2>&1
scanning output for: <^(.*)$>
no match
graph display mode: standard
graph destination dir: /var/www/html/
recording RRA step size: 10 seconds
recording RRA history size: 70 day(s) 0 hour(s) 0 minute(s) 0 second(s)
using multiple tuners: in parallel (if applicable)
dvb failure recovery method: retry
generating graph for: 1h recording length, size 1400x1000 pixels
generating graph for: 6h recording length, size 1400x1000 pixels
generating graph for: 1d recording length, size 1400x1000 pixels
generating graph for: 7d recording length, size 1400x1000 pixels
generating graph for: 30d recording length, size 1400x1000 pixels
(re)creating the RRD base
CMD: /bin/bash -c 'rrdtool create /home/pi/CableLoadMonitor.rrd -s 1 \
DS:f00:GAUGE:120:U:U \
DS:f01:GAUGE:120:U:U \
DS:f02:GAUGE:120:U:U \
DS:f03:GAUGE:120:U:U \
DS:f04:GAUGE:120:U:U \
DS:f05:GAUGE:120:U:U \
DS:f06:GAUGE:120:U:U \
DS:f07:GAUGE:120:U:U \
DS:f08:GAUGE:120:U:U \
DS:f09:GAUGE:120:U:U \
DS:f10:GAUGE:120:U:U \
DS:f11:GAUGE:120:U:U \
DS:f12:GAUGE:120:U:U \
DS:f13:GAUGE:120:U:U \
DS:f14:GAUGE:120:U:U \
DS:f15:GAUGE:120:U:U \
DS:f16:GAUGE:120:U:U \
DS:f17:GAUGE:120:U:U \
DS:f18:GAUGE:120:U:U \
DS:f19:GAUGE:120:U:U \
DS:f20:GAUGE:120:U:U \
DS:f21:GAUGE:120:U:U \
DS:f22:GAUGE:120:U:U \
DS:f23:GAUGE:120:U:U \
DS:f24:GAUGE:120:U:U \
DS:f25:GAUGE:120:U:U \
DS:f26:GAUGE:120:U:U \
DS:f27:GAUGE:120:U:U \
DS:f28:GAUGE:120:U:U \
DS:f29:GAUGE:120:U:U \
DS:f30:GAUGE:120:U:U \
DS:sum:GAUGE:120:U:U \
RRA:AVERAGE:0.1:10:604800' 2>&1
scanning output for: <(.)>
no match
CMD: /bin/bash -c 'echo 0 | sudo tee -a /sys/module/dvb_core/parameters/dvb_powerdown_on_sleep' 2>&1
0
CMD: /bin/bash -c '/opt/bin/mediaclient -d /dev/dvb/adapter0/frontend0 --setdtvmode=DVBC' 2>&1
scanning output for: <^(Done)>
/bin/bash: /opt/bin/mediaclient: Datei oder Verzeichnis nicht gefunden
no match
no Sundtek card(s) found, trying others (untested)
CMD: /bin/bash -c 'dvb-fe-tool -a 0 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
Changing delivery system to: DVBC/ANNEX_A
no match
CMD: /bin/bash -c 'dvb-fe-tool -a 1 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
Changing delivery system to: DVBC/ANNEX_A
no match
CMD: /bin/bash -c 'dvb-fe-tool -a 2 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
WARNING device dvb2.frontend0 not found
first match: <not found>
tuner(s) found: 2, using thereof: 2
CMD: /bin/bash -c 'ln -nfs /bin/sh /home/pi/sh0' 2>&1
CMD: /bin/bash -c 'ln -nfs /bin/sh /home/pi/sh1' 2>&1
07:34:55: --------------------------------------------------------------------------------
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 474000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 482000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/9558 (= 0.0%) Avrg: 14713.646 kbit/s 14714
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 490000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 498000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1329 (= 0.0%) Avrg: 2025.143 kbit/s 2025
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 522000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 530000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/423 (= 0.0%) Avrg: 640.677 kbit/s 641
## PID: 8190 (0x1ffe) bad/total packets: 0/541 (= 0.0%) Avrg: 821.883 kbit/s 822
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 538000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 546000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/413 (= 0.0%) Avrg: 629.972 kbit/s 630
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 554000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 562000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/676 (= 0.0%) Avrg: 1030.095 kbit/s 1030
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 570000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 578000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1413 (= 0.0%) Avrg: 2155.327 kbit/s 2155
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 586000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 594000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
====== [ 2500 ] program start [So Mär 22 07:35:24 CET 2020] on raspberry3 ======
CableLoadMonitor|-t|/var/www/html/|-sequential|||||||||||||||||
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.cfg' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.cfg)$>
/home/pi/CableLoadMonitor.cfg
first match: </home/pi/CableLoadMonitor.cfg>
ex_line open: { cat /home/pi/CableLoadMonitor.cfg; } 2>&1
ex_line close: { cat /home/pi/CableLoadMonitor.cfg; } 2>&1
evaluating given downstream channel frequencies
downstream channel frequencies now in use: [ 31 ]
474/QAM256 482/QAM256 490/QAM256 498/QAM256 522/QAM256 530/QAM256 538/QAM256
546/QAM256 554/QAM256 562/QAM256 570/QAM256 578/QAM256 586/QAM256 594/QAM256
602/QAM256 618/QAM256 626/QAM256 634/QAM256 642/QAM256 650/QAM256 658/QAM256
666/QAM256 674/QAM256 682/QAM256 690/QAM256 698/QAM256 706/QAM256 746/QAM256
754/QAM256 762/QAM256 770/QAM256
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.rrd' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.rrd)$>
/home/pi/CableLoadMonitor.rrd
first match: </home/pi/CableLoadMonitor.rrd>
CMD: /bin/bash -c 'mkdir -p /var/www/html/' 2>&1
scanning output for: <^(.*)$>
no match
graph display mode: standard
graph destination dir: /var/www/html/
recording RRA step size: 10 seconds
recording RRA history size: 70 day(s) 0 hour(s) 0 minute(s) 0 second(s)
using multiple tuners: sequentially (if applicable)
dvb failure recovery method: retry
generating graph for: 1h recording length, size 1400x1000 pixels
generating graph for: 6h recording length, size 1400x1000 pixels
generating graph for: 1d recording length, size 1400x1000 pixels
generating graph for: 7d recording length, size 1400x1000 pixels
generating graph for: 30d recording length, size 1400x1000 pixels
CMD: /bin/bash -c 'echo 0 | sudo tee -a /sys/module/dvb_core/parameters/dvb_powerdown_on_sleep' 2>&1
0
CMD: /bin/bash -c '/opt/bin/mediaclient -d /dev/dvb/adapter0/frontend0 --setdtvmode=DVBC' 2>&1
scanning output for: <^(Done)>
/bin/bash: /opt/bin/mediaclient: Datei oder Verzeichnis nicht gefunden
no match
no Sundtek card(s) found, trying others (untested)
CMD: /bin/bash -c 'dvb-fe-tool -a 0 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
Changing delivery system to: DVBC/ANNEX_A
no match
CMD: /bin/bash -c 'dvb-fe-tool -a 1 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
Changing delivery system to: DVBC/ANNEX_A
no match
CMD: /bin/bash -c 'dvb-fe-tool -a 2 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
WARNING device dvb2.frontend0 not found
first match: <not found>
tuner(s) found: 2, using thereof: 2
CMD: /bin/bash -c 'ln -nfs /bin/sh /home/pi/sh0' 2>&1
CMD: /bin/bash -c 'ln -nfs /bin/sh /home/pi/sh1' 2>&1
07:35:24: --------------------------------------------------------------------------------
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 474000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/418 (= 0.0%) Avrg: 635.022 kbit/s 635
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 482000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2599 (= 0.0%) Avrg: 3948.380 kbit/s 3948
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 490000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2365 (= 0.0%) Avrg: 3578.431 kbit/s 3578
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 498000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1844 (= 0.0%) Avrg: 2790.117 kbit/s 2790
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 522000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1579 (= 0.0%) Avrg: 2406.095 kbit/s 2406
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 530000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1126 (= 0.0%) Avrg: 1705.442 kbit/s 1705
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 538000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/892 (= 0.0%) Avrg: 1357.862 kbit/s 1358
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 546000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1270 (= 0.0%) Avrg: 1925.484 kbit/s 1925
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 554000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1449 (= 0.0%) Avrg: 2208.000 kbit/s 2208
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 562000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1722 (= 0.0%) Avrg: 2624.000 kbit/s 2624
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 570000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1197 (= 0.0%) Avrg: 1811.155 kbit/s 1811
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 578000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/736 (= 0.0%) Avrg: 1113.626 kbit/s 1114
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 586000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1908 (= 0.0%) Avrg: 2904.486 kbit/s 2904
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 594000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1367 (= 0.0%) Avrg: 2080.939 kbit/s 2081
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 602000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1384 (= 0.0%) Avrg: 2106.818 kbit/s 2107
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 618000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1374 (= 0.0%) Avrg: 2078.970 kbit/s 2079
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 626000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1707 (= 0.0%) Avrg: 2598.510 kbit/s 2599
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 634000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1011 (= 0.0%) Avrg: 1539.012 kbit/s 1539
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 642000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1059 (= 0.0%) Avrg: 1613.714 kbit/s 1614
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 650000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/834 (= 0.0%) Avrg: 1261.907 kbit/s 1262
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 658000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2349 (= 0.0%) Avrg: 3579.429 kbit/s 3579
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 666000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1420 (= 0.0%) Avrg: 2159.434 kbit/s 2159
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 674000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/973 (= 0.0%) Avrg: 1482.667 kbit/s 1483
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 682000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/5705 (= 0.0%) Avrg: 8640.806 kbit/s 8641
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 690000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1165 (= 0.0%) Avrg: 1764.512 kbit/s 1765
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 698000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/737 (= 0.0%) Avrg: 1121.911 kbit/s 1122
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 706000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1027 (= 0.0%) Avrg: 1561.788 kbit/s 1562
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 746000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1212 (= 0.0%) Avrg: 1844.988 kbit/s 1845
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 754000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/711 (= 0.0%) Avrg: 1083.429 kbit/s 1083
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 762000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2509 (= 0.0%) Avrg: 3796.314 kbit/s 3796
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 770000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/1875 (= 0.0%) Avrg: 2854.251 kbit/s 2854
CMD: /bin/bash -c 'rrdtool update /home/pi/CableLoadMonitor.rrd N:635000:3948000:3578000:2790000:2406000:1705000:1358000:1925000:2208000:2624000:1811000:1114000:2904000:2081000:2107000:2079000:2599000:1539000:1614000:1262000:3579000:2159000:1483000:8641000:1765000:1122000:1562000:1845000:1083000:3796000:2854000:72176000' 2>&1 72176
scanning output for: <^(.*ERROR.*)$>
1481x1138
no match
CMD: /bin/bash -c 'mv /var/www/html/CableLoadMonitor.png_ /var/www/html/CableLoadMonitor_1h.png' 2>&1
scanning output for: <^(.*ERROR.*)$>
1481x1138
no match
CMD: /bin/bash -c 'mv /var/www/html/CableLoadMonitor.png_ /var/www/html/CableLoadMonitor_6h.png' 2>&1
scanning output for: <^(.*ERROR.*)$>
1481x1138
no match
CMD: /bin/bash -c 'mv /var/www/html/CableLoadMonitor.png_ /var/www/html/CableLoadMonitor_1d.png' 2>&1
scanning output for: <^(.*ERROR.*)$>
1481x1138
no match
CMD: /bin/bash -c 'mv /var/www/html/CableLoadMonitor.png_ /var/www/html/CableLoadMonitor_7d.png' 2>&1
scanning output for: <^(.*ERROR.*)$>
 

sparkie

Beiträge
712
Reaktionen
18
vermutlich gibt deine Firmware den 'Downstream Channel Status' in einem anderen Format aus als noch in der SR70.12.33-180327

So wird die Zeile jetzt wegen der neuen Modulationsprofile nicht mehr richtig erkannt. Dann musst du vorerst die Frequenzen mit '-f' manuell angeben.

Ich muss jetzt leider weg. Bin aber gegen Mittag wieder zurueck.

Wenn 'CableLoadMonitor', 'CableLoadMonitor.awklib', 'CableLoadMonitor.cfg.2020...', 'CableLoadMonitor.rrd.2020...' vor dem Stoppen des Tools konsistent zurueckkopiert wird, dann sollte die alte Version sofort wieder laufen.
 

rv112

Beiträge
4.059
Reaktionen
107
Wie meinst Du das? Ich habe den kompletten Ordner vorher gesichert. Wenn ich ihn nun wieder einspiele, bekomme ich nur noch:

Code:
awk: CableLoadMonitor_1432.awk:10: Fatal: function `setup_lib' not defined
 

rv112

Beiträge
4.059
Reaktionen
107
Noch mal Cleaninstall, alte .config für Frequenzen eingespielt und auch hier liefern beide Tuner beim ersten Scan das korrekte Ergebnis, danach nur noch Schrott:

Unbenannt.JPG

Ebenso geht es nach dem ersten Durchlauf nicht weiter, der Raspberry scheint komplett ausgelastet, jedenfalls ist alles extrem träge. Die .rrd Datei ist über 150MB groß, doch auch wenn ich alles frisch installiere, legt er wieder so eine große Datei an. Vielleicht ist das, das Problem dass er so träge ist?

EDIT: habe nun auf das reduziert, damit geht es nun schneller:

Code:
 RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 " |1h"
RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 * 24 " |1d"
RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 * 24 * 7 " |7d"
Mit "sudo sh CableLoadMonitor -t /var/www/html/ -m 1" sehen auch die Messwerte besser aus, außer der Erste einer neuen Zeile. Wie könnte ich das lösen? Irgendwie noch etwas mehr Zeit einbauen, bis ein neuer Scan beginnt?

Unbenannt.JPG
 
Zuletzt bearbeitet:

sparkie

Beiträge
712
Reaktionen
18
so, bin wieder zurueck :)

Die .rrd Datei ist über 150MB groß, doch auch wenn ich alles frisch installiere, legt er wieder so eine große Datei an.
per default macht er das:
Code:
recording RRA history size: 7 day(s) 0 hour(s) 0 minute(s) 0 second(s)
bei dir steht aber:

Code:
recording RRA history size: 70 day(s) 0 hour(s) 0 minute(s) 0 second(s)
woher kommen die 70(!) Tage?
Dann verwendest du nicht die Originalversion. Die '*.rrd' Datei ist im Original mit 7 Tagen Aufzeichnungdauer auf einem Raspi etwa 10MB gross (und nicht etwa 150MB).

was den komischen Tuner in deiner Hardware angeht:
Ich weiss nicht was der fuer Probleme hat.

Insgesamt sehe ich folgende Probleme, die zu loesen sind:
- warum 70 statt 7 Tage Aufzeichnungsdauer?
- warum erster Messwert nach Pause unplausibel?
- Aenderung des Ausgabe-Formats bei neuerer TC4400-Firmware

fehlt noch was?
 

sparkie

Beiträge
712
Reaktionen
18
koenntest du mal die Ausgabe hiervon zukommen lassen? Damit ich es entsprechend fuer deine TC4400 Firmware beruecksichtigen kann.
Code:
wget -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O tc4400.html
 

rv112

Beiträge
4.059
Reaktionen
107
1. Ich weiß nicht wie er auf 70 Tage kommt. Ich habe alles im Ordner gelöscht und danach die beiden wget vom Git ausgeführt. Danach einfach gestartet und er macht das mit dem 70 Tagen. Habe nun meine alte .rrd eingespielt, damit läuft es nun wieder flott und ich hab meine alten Daten wieder :)

2. Hier erkennst Du dass es unplausibel ist:

Unbenannt.JPG

3. Bitte sehr, mehr kommt leider nicht:

Unbenannt.JPG
 

lupus

Beiträge
385
Reaktionen
32
Die tc4400.html Datei die generiert wurde möchte er haben. Schicks ihm am besten per PM.
 

rv112

Beiträge
4.059
Reaktionen
107
Ach so, sorry :D

Hier:
Code:
<html> <head> <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'> <link rel="stylesheet" href='stylemain.css' type='text/css'> <link rel="stylesheet" href='colors.css' type='text/css'> <title>Residential Getway Configuration: Status - Connection</title> <script language="javascript">
<!-- hide
function onLoadScript()
{ setTimeout("window.location.reload();",10000);
}
function ApplyRgSetupButton()
{ window.document.RgConnect.ApplyRgConnectAction.value = 1;
} </script> </head>
<body>
<blockquote> <h1>Status</h1> <h3>Connection</h3> This page displays information on the status of the cable modem's HFC and IP network connectivity.
<form action=/goform/RgConnect method=POST name="RgConnect">
<p>
CM IP Prov Mode: Honor MDD
<br>
</p>
</form>
<p>
<table border="1" cellpadding="4" cellspacing="0">
<tr><th colspan=3><b>Startup Procedure</b></th></tr>
<tr align='center'><td class='hd'>Procedure</td><td class='hd'>Status</td><td class='hd'>Comment</td></tr>
<tr><td><b>Acquire Downstream Channel</b></td><td>490000000 Hz</td><td>Locked</td></tr>
<tr><td><b>Connectivity State</b></td><td>OK</td><td>Operational</td></tr>
<tr><td><b>Boot State</b></td><td>OK</td><td>Operational</td></tr>
<tr><td><b>Configuration File</b></td><td>OK</td><td>cust-own_1000000_50000_ds_sip_wifi-on.bin</td></tr>
<tr><td><b>Security</b></td><td>Enabled</td><td>BPI+</td></tr>
</table><br>
</p>
<p> <table border='1' cellpadding='4' cellspacing='0'>
<tr><th colspan=13><b>Downstream Channel Status</b></th></tr> <tr align='center'> <td class='hd'>Channel Index</td> <td class='hd'>Channel ID</td> <td class='hd'>Lock Status</td> <td class='hd'>Channel Type</td> <td class='hd'>Bonding Status</td> <td class='hd'>Center Frequency</td> <td class='hd'>Channel Width</td> <td class='hd'>SNR/MER Threshold Value</td> <td class='hd'>Received Level</td> <td class='hd'>Modulation/Profile ID</td> <td class='hd'>Unerrored Codewords</td> <td class='hd'>Corrected Codewords</td> <td class='hd'>Uncorrectable Codewords</td> </tr> <tr align='center'> <td>1</td> <td>1</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>474000000 Hz</td> <td>8000000 Hz</td> <td>39.3 dB</td> <td>0.7 dBmV</td> <td>QAM256</td> <td>3260020819</td> <td>438</td> <td>0</td> </tr> <tr align='center'> <td>2</td> <td>2</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>482000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>1.0 dBmV</td> <td>QAM256</td> <td>3259270918</td> <td>485</td> <td>0</td> </tr> <tr align='center'> <td>3</td> <td>3</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>490000000 Hz</td> <td>8000000 Hz</td> <td>39.6 dB</td> <td>1.1 dBmV</td> <td>QAM256</td> <td>3259264264</td> <td>472</td> <td>0</td> </tr> <tr align='center'> <td>4</td> <td>4</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>498000000 Hz</td> <td>8000000 Hz</td> <td>39.2 dB</td> <td>1.1 dBmV</td> <td>QAM256</td> <td>3259278359</td> <td>409</td> <td>0</td> </tr> <tr align='center'> <td>5</td> <td>5</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>522000000 Hz</td> <td>8000000 Hz</td> <td>39.4 dB</td> <td>0.9 dBmV</td> <td>QAM256</td> <td>3259279333</td> <td>618</td> <td>0</td> </tr> <tr align='center'> <td>6</td> <td>6</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>530000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>1.2 dBmV</td> <td>QAM256</td> <td>3259283184</td> <td>430</td> <td>0</td> </tr> <tr align='center'> <td>7</td> <td>7</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>538000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>1.1 dBmV</td> <td>QAM256</td> <td>3259276226</td> <td>521</td> <td>0</td> </tr> <tr align='center'> <td>8</td> <td>8</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>546000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>1.2 dBmV</td> <td>QAM256</td> <td>3259288525</td> <td>576</td> <td>0</td> </tr> <tr align='center'> <td>9</td> <td>9</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>554000000 Hz</td> <td>8000000 Hz</td> <td>39.6 dB</td> <td>1.2 dBmV</td> <td>QAM256</td> <td>3259299758</td> <td>438</td> <td>0</td> </tr> <tr align='center'> <td>10</td> <td>10</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>562000000 Hz</td> <td>8000000 Hz</td> <td>39.6 dB</td> <td>1.6 dBmV</td> <td>QAM256</td> <td>3259289134</td> <td>482</td> <td>0</td> </tr> <tr align='center'> <td>11</td> <td>11</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>570000000 Hz</td> <td>8000000 Hz</td> <td>39.7 dB</td> <td>1.8 dBmV</td> <td>QAM256</td> <td>3259304400</td> <td>458</td> <td>0</td> </tr> <tr align='center'> <td>12</td> <td>12</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>578000000 Hz</td> <td>8000000 Hz</td> <td>39.7 dB</td> <td>1.8 dBmV</td> <td>QAM256</td> <td>3259316310</td> <td>490</td> <td>0</td> </tr> <tr align='center'> <td>13</td> <td>13</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>586000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>1.8 dBmV</td> <td>QAM256</td> <td>3259326715</td> <td>521</td> <td>0</td> </tr> <tr align='center'> <td>14</td> <td>14</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>594000000 Hz</td> <td>8000000 Hz</td> <td>39.8 dB</td> <td>2.3 dBmV</td> <td>QAM256</td> <td>3259328201</td> <td>352</td> <td>0</td> </tr> <tr align='center'> <td>15</td> <td>15</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>602000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>2.4 dBmV</td> <td>QAM256</td> <td>3259354065</td> <td>428</td> <td>0</td> </tr> <tr align='center'> <td>16</td> <td>16</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>618000000 Hz</td> <td>8000000 Hz</td> <td>39.3 dB</td> <td>2.2 dBmV</td> <td>QAM256</td> <td>3259347374</td> <td>599</td> <td>0</td> </tr> <tr align='center'> <td>17</td> <td>17</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>626000000 Hz</td> <td>8000000 Hz</td> <td>39.4 dB</td> <td>2.1 dBmV</td> <td>QAM256</td> <td>3259354713</td> <td>834</td> <td>0</td> </tr> <tr align='center'> <td>18</td> <td>18</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>634000000 Hz</td> <td>8000000 Hz</td> <td>39.2 dB</td> <td>2.0 dBmV</td> <td>QAM256</td> <td>3259354570</td> <td>1091</td> <td>0</td> </tr> <tr align='center'> <td>19</td> <td>19</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>642000000 Hz</td> <td>8000000 Hz</td> <td>39.3 dB</td> <td>2.2 dBmV</td> <td>QAM256</td> <td>3259376100</td> <td>1072</td> <td>0</td> </tr> <tr align='center'> <td>20</td> <td>20</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>650000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>2.5 dBmV</td> <td>QAM256</td> <td>3259367096</td> <td>898</td> <td>0</td> </tr> <tr align='center'> <td>21</td> <td>21</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>658000000 Hz</td> <td>8000000 Hz</td> <td>39.1 dB</td> <td>2.2 dBmV</td> <td>QAM256</td> <td>3259376487</td> <td>1360</td> <td>0</td> </tr> <tr align='center'> <td>22</td> <td>22</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>666000000 Hz</td> <td>8000000 Hz</td> <td>39.1 dB</td> <td>2.1 dBmV</td> <td>QAM256</td> <td>3259378809</td> <td>1761</td> <td>0</td> </tr> <tr align='center'> <td>23</td> <td>23</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>674000000 Hz</td> <td>8000000 Hz</td> <td>38.1 dB</td> <td>1.9 dBmV</td> <td>QAM256</td> <td>3259379705</td> <td>2246</td> <td>0</td> </tr> <tr align='center'> <td>24</td> <td>24</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>682000000 Hz</td> <td>8000000 Hz</td> <td>39.0 dB</td> <td>1.8 dBmV</td> <td>QAM256</td> <td>3259387053</td> <td>2327</td> <td>0</td> </tr> <tr align='center'> <td>25</td> <td>25</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>690000000 Hz</td> <td>8000000 Hz</td> <td>39.3 dB</td> <td>2.3 dBmV</td> <td>QAM256</td> <td>3259401798</td> <td>1370</td> <td>0</td> </tr> <tr align='center'> <td>26</td> <td>26</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>698000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>2.7 dBmV</td> <td>QAM256</td> <td>3259398678</td> <td>1123</td> <td>0</td> </tr> <tr align='center'> <td>27</td> <td>27</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>706000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>3.1 dBmV</td> <td>QAM256</td> <td>3259399190</td> <td>848</td> <td>0</td> </tr> <tr align='center'> <td>28</td> <td>28</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>746000000 Hz</td> <td>8000000 Hz</td> <td>39.5 dB</td> <td>3.1 dBmV</td> <td>QAM256</td> <td>3259311275</td> <td>653</td> <td>0</td> </tr> <tr align='center'> <td>29</td> <td>29</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>754000000 Hz</td> <td>8000000 Hz</td> <td>39.6 dB</td> <td>3.4 dBmV</td> <td>QAM256</td> <td>3259318934</td> <td>521</td> <td>0</td> </tr> <tr align='center'> <td>30</td> <td>30</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>762000000 Hz</td> <td>8000000 Hz</td> <td>39.6 dB</td> <td>3.6 dBmV</td> <td>QAM256</td> <td>3259425980</td> <td>360</td> <td>0</td> </tr> <tr align='center'> <td>31</td> <td>31</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>770000000 Hz</td> <td>8000000 Hz</td> <td>39.8 dB</td> <td>3.9 dBmV</td> <td>QAM256</td> <td>3259418738</td> <td>282</td> <td>0</td> </tr> <tr align='center'> <td>32</td> <td>32</td> <td>Locked</td> <td>OFDM</td> <td>Bonded</td> <td>823000000 Hz</td> <td>86000 kHz</td> <td>35.2 dB</td> <td>0.4 dBmV</td> <td>0,1,2</td> <td>2030298514</td> <td>1156000128</td> <td>45</td> </tr>
</table><br><br>
</p>
<p> <table border='1' cellpadding='4' cellspacing='0'>
<tr><th colspan=9><b>Upstream Channel Status</b></th></tr> <tr align='center'> <td class='hd'>Channel Index</td> <td class='hd'>Channel ID</td> <td class='hd'>Lock Status</td> <td class='hd'>Channel Type</td> <td class='hd'>Bonding Status</td> <td class='hd'>Center Frequency</td> <td class='hd'>Channel Width</td> <td class='hd'>Transmit Level</td> <td class='hd'>Modulation/Profile ID</td> </tr> <tr align='center'> <td>1</td> <td>37</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>30800000 Hz</td> <td>6400000 Hz</td> <td>42.0 dBmV</td> <td>ATDMA</td> </tr> <tr align='center'> <td>2</td> <td>38</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>37400000 Hz</td> <td>6400000 Hz</td> <td>43.0 dBmV</td> <td>ATDMA</td> </tr> <tr align='center'> <td>3</td> <td>39</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>45200000 Hz</td> <td>6400000 Hz</td> <td>42.0 dBmV</td> <td>ATDMA</td> </tr> <tr align='center'> <td>4</td> <td>40</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>51800000 Hz</td> <td>6400000 Hz</td> <td>42.0 dBmV</td> <td>ATDMA</td> </tr> <tr align='center'> <td>5</td> <td>41</td> <td>Locked</td> <td>SC-QAM</td> <td>Bonded</td> <td>58400000 Hz</td> <td>6400000 Hz</td> <td>43.0 dBmV</td> <td>ATDMA</td> </tr>
</table><br><br>
</p>
<p> <table border="1" cellpadding="4" cellspacing="0"> <tr align='center'><td class='hd'>CM IP Address</td><td class='hd'>Duration</td><td class='hd'>Expires</td></tr> <tr><td>IPv4=10.120.xxx.xxx</td><td>D: 03 H: 00 M: 00 S: 00</td><td>Tue Mar 24 12:32:23 2020
</td></tr> <tr><td>IPv6=</td><td>&nbsp;</td><td>&nbsp;</td></tr> </table><br>
</p>
<p> <b>Current System Time:</b> Sun Mar 22 14:14:55 2020
</p>
</blockquote>
</body>
</html>
 

sparkie

Beiträge
712
Reaktionen
18
ich hab das screen scraping fuer deine TC4400 firmware jetzt im git gefixt. Wenn du bitte die aktuelle Version testweise in ein leeres directory kopieren koenntest. Dann sollte er jetzt alle Frequenzen selbst finden und nur 7 Tage Aufzeichnungdauer nutzen. Bitte mir dann das *.log zukommen lassen.
 

rv112

Beiträge
4.059
Reaktionen
107
So hier bitte:

Code:
====== [ 14264 ] program start [So Mär 22 20:26:20 CET 2020] on raspberry3 ======
CableLoadMonitor||||||||||||||||||||
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.cfg' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.cfg)$>
ls: Zugriff auf '/home/pi/CableLoadMonitor.cfg' nicht möglich: Datei oder Verzeichnis nicht gefunden
no match
trying to retrieve downstream channel frequencies from TC4400 modem
ex_line open: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
ex_line close: { echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password='bEn2o#US9s' http://192.168.100.1/cmconnectionstatus.html -O -; } 2>&1
downstream channel frequencies now in use: [ 31 ]
474/QAM256 482/QAM256 490/QAM256 498/QAM256 522/QAM256 530/QAM256 538/QAM256
546/QAM256 554/QAM256 562/QAM256 570/QAM256 578/QAM256 586/QAM256 594/QAM256
602/QAM256 618/QAM256 626/QAM256 634/QAM256 642/QAM256 650/QAM256 658/QAM256
666/QAM256 674/QAM256 682/QAM256 690/QAM256 698/QAM256 706/QAM256 746/QAM256
754/QAM256 762/QAM256 770/QAM256
CMD: /bin/bash -c 'ls /home/pi/CableLoadMonitor.rrd' 2>&1
scanning output for: <^(/home/pi/CableLoadMonitor.rrd)$>
ls: Zugriff auf '/home/pi/CableLoadMonitor.rrd' nicht möglich: Datei oder Verzeichnis nicht gefunden
no match
the RRD does not exist
graph display mode: standard
graph destination dir: /home/pi/
recording RRA step size: 10 seconds
recording RRA history size: 7 day(s) 0 hour(s) 0 minute(s) 0 second(s)
using multiple tuners: in parallel (if applicable)
dvb failure recovery method: retry
generating graph for: 1h recording length, size 1400x1000 pixels
generating graph for: 6h recording length, size 1400x1000 pixels
generating graph for: 1d recording length, size 1400x1000 pixels
generating graph for: 7d recording length, size 1400x1000 pixels
(re)creating the RRD base
CMD: /bin/bash -c 'rrdtool create /home/pi/CableLoadMonitor.rrd -s 1 \
DS:f00:GAUGE:120:U:U \
DS:f01:GAUGE:120:U:U \
DS:f02:GAUGE:120:U:U \
DS:f03:GAUGE:120:U:U \
DS:f04:GAUGE:120:U:U \
DS:f05:GAUGE:120:U:U \
DS:f06:GAUGE:120:U:U \
DS:f07:GAUGE:120:U:U \
DS:f08:GAUGE:120:U:U \
DS:f09:GAUGE:120:U:U \
DS:f10:GAUGE:120:U:U \
DS:f11:GAUGE:120:U:U \
DS:f12:GAUGE:120:U:U \
DS:f13:GAUGE:120:U:U \
DS:f14:GAUGE:120:U:U \
DS:f15:GAUGE:120:U:U \
DS:f16:GAUGE:120:U:U \
DS:f17:GAUGE:120:U:U \
DS:f18:GAUGE:120:U:U \
DS:f19:GAUGE:120:U:U \
DS:f20:GAUGE:120:U:U \
DS:f21:GAUGE:120:U:U \
DS:f22:GAUGE:120:U:U \
DS:f23:GAUGE:120:U:U \
DS:f24:GAUGE:120:U:U \
DS:f25:GAUGE:120:U:U \
DS:f26:GAUGE:120:U:U \
DS:f27:GAUGE:120:U:U \
DS:f28:GAUGE:120:U:U \
DS:f29:GAUGE:120:U:U \
DS:f30:GAUGE:120:U:U \
DS:sum:GAUGE:120:U:U \
RRA:AVERAGE:0.1:10:60480' 2>&1
scanning output for: <(.)>
no match
CMD: /bin/bash -c 'echo 0 | sudo tee -a /sys/module/dvb_core/parameters/dvb_powerdown_on_sleep' 2>&1
0
CMD: /bin/bash -c '/opt/bin/mediaclient -d /dev/dvb/adapter0/frontend0 --setdtvmode=DVBC' 2>&1
scanning output for: <^(Done)>
/bin/bash: /opt/bin/mediaclient: Datei oder Verzeichnis nicht gefunden
no match
no Sundtek card(s) found, trying others (untested)
CMD: /bin/bash -c 'dvb-fe-tool -a 0 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
Changing delivery system to: DVBC/ANNEX_A
no match
CMD: /bin/bash -c 'dvb-fe-tool -a 1 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
Changing delivery system to: DVBC/ANNEX_A
no match
CMD: /bin/bash -c 'dvb-fe-tool -a 2 -d DVBC/ANNEX_A' 2>&1
scanning output for: <(not found)>
WARNING device dvb2.frontend0 not found
first match: <not found>
tuner(s) found: 2, using thereof: 2
CMD: /bin/bash -c 'ln -nfs /bin/sh /home/pi/sh0' 2>&1
CMD: /bin/bash -c 'ln -nfs /bin/sh /home/pi/sh1' 2>&1
20:26:31: --------------------------------------------------------------------------------
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 474000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 482000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/3684 (= 0.0%) Avrg: 5636.557 kbit/s 5637
## PID: 8190 (0x1ffe) bad/total packets: 0/24004 (= 0.0%) Avrg: 36319.936 kbit/s 36320
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 490000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 498000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/4009 (= 0.0%) Avrg: 6090.440 kbit/s 6090
## PID: 8190 (0x1ffe) bad/total packets: 0/2363 (= 0.0%) Avrg: 3582.613 kbit/s 3583
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 522000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 530000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
## PID: 8190 (0x1ffe) bad/total packets: 0/2341 (= 0.0%) Avrg: 3574.481 kbit/s 3574
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 538000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 546000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2127 (= 0.0%) Avrg: 3244.430 kbit/s 3244
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 554000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 562000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
## PID: 8190 (0x1ffe) bad/total packets: 0/1898 (= 0.0%) Avrg: 2895.124 kbit/s 2895
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 570000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 578000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2205 (= 0.0%) Avrg: 3363.408 kbit/s 3363
## PID: 8190 (0x1ffe) bad/total packets: 0/2250 (= 0.0%) Avrg: 3435.533 kbit/s 3436
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 586000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 594000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2714 (= 0.0%) Avrg: 4135.619 kbit/s 4136
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 602000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 618000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2829 (= 0.0%) Avrg: 4293.457 kbit/s 4293
## PID: 8190 (0x1ffe) bad/total packets: 0/2690 (= 0.0%) Avrg: 4082.503 kbit/s 4083
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 626000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 634000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2060 (= 0.0%) Avrg: 3129.535 kbit/s 3130
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 642000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 650000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2963 (= 0.0%) Avrg: 4510.478 kbit/s 4510
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 658000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 666000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
## PID: 8190 (0x1ffe) bad/total packets: 0/1888 (= 0.0%) Avrg: 2879.870 kbit/s 2880
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 674000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 682000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
## PID: 8190 (0x1ffe) bad/total packets: 0/2540 (= 0.0%) Avrg: 3874.402 kbit/s 3874
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 690000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 698000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2279 (= 0.0%) Avrg: 3476.284 kbit/s 3476
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 706000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 746000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2734 (= 0.0%) Avrg: 4140.922 kbit/s 4141
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 754000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 1 -f 762000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 1 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/2434 (= 0.0%) Avrg: 3712.714 kbit/s 3713
## PID: 8190 (0x1ffe) bad/total packets: 0/0 (= nan%) Avrg: 0.000 kbit/s 0
{ LD_PRELOAD=/opt/lib/libmediaclient.so timeout 10 dvbtune -c 0 -f 770000000 -s 6952 -qam 256; LD_PRELOAD=/opt/lib/libmediaclient.so timeout 1 dvbsnoop -adapter 0 -s bandwidth 8190 -n 80000; } 2>&1
## PID: 8190 (0x1ffe) bad/total packets: 0/3333 (= 0.0%) Avrg: 5063.467 kbit/s 5063
CMD: /bin/bash -c 'rrdtool update /home/pi/CableLoadMonitor.rrd N:5637000:36320000:6090000:3583000:0:3574000:3244000:0:0:2895000:3363000:3436000:4136000:0:4293000:4083000:3130000:0:4510000:0:0:2880000:0:3874000:3476000:0:4141000:0:3713000:0:5063000:111441000' 2>&1 111441
scanning output for: <^(.*ERROR.*)$>
1481x1138
no match
CMD: /bin/bash -c 'mv /home/pi/CableLoadMonitor.png_ /home/pi/CableLoadMonitor_1h.png' 2>&1
scanning output for: <^(.*ERROR.*)$>
1481x1138
no match
CMD: /bin/bash -c 'mv /home/pi/CableLoadMonitor.png_ /home/pi/CableLoadMonitor_6h.png' 2>&1
scanning output for: <^(.*ERROR.*)$>
 

sparkie

Beiträge
712
Reaktionen
18
ok, danke. Ich sehe:

1. 7 Tage (statt 70 Tage) Aufzeichnungszeit ist korrekt
2. die Frequenzen werden nun mit der neuen TC4400 Firmware korrekt ermittelt
3. Dualtuner Betrieb liefert auf dem einen oder anderen Tuner sporadisch 0 packets. Scheinen Hardwareprobleme zu sein.

Workaround fuer 3. koennte Option '-m 1' ODER Option '-sequential' sein.

was die 70 Tage Aufzeichnungszeit von oben angeht:
ich vermute die kommen wenn Du eine aeltere*rrd + *cfg einspielst (von vor Nov 15, 2019). Damals gab es doch die Korrektur bug fix calculating the correct recording length · sp4rkie/[email protected]
Aufgrund des Fehlers ist die alte *rrd nicht mehr kompatibel zum Format der aktuellen *rrd
 

sparkie

Beiträge
712
Reaktionen
18
als Workaround fuer 3. alternativ zu Option '-m 1' ODER Option '-sequential' vielleicht mal im Script einen sleep testweise einbauen:

Code:
CMD = "{ " LD_PL "timeout 10 dvbtune -c " tuner " -f " FREQ[i + k] * FREQ_FACTOR " -s 6952 -qam " MODP[FREQ[i + k]] "; " \
LD_PL "timeout 1 dvbsnoop -adapter " tuner " -s bandwidth 8190 -n 80000" "; } 2>&1"
aendern zu (sleep hinzufuegen):
Code:
CMD = "{ " LD_PL "timeout 10 dvbtune -c " tuner " -f " FREQ[i + k] * FREQ_FACTOR " -s 6952 -qam " MODP[FREQ[i + k]] "; " \
"sleep 2; " \
LD_PL "timeout 1 dvbsnoop -adapter " tuner " -s bandwidth 8190 -n 80000" "; } 2>&1"
 

rv112

Beiträge
4.059
Reaktionen
107
Habe ich probiert, aber die erste Frequenz zeigt immer zu wenig an. Das war mit der alten Version nicht so.
 

sparkie

Beiträge
712
Reaktionen
18
soweit ich mich erinnere hast du doch bei dir im Script irgendwo mal einen sleep eingebaut.

Hast (diese?) Version noch? Oder halt eine die bei dir funktioniert?
 

rv112

Beiträge
4.059
Reaktionen
107
Ja, die jetzige funktioniert mit dem Sleep wieder. Habe ihn wieder eingebaut. Lediglich die erste Frequenz macht noch Probleme. Dazwischen läuft es.
 

sparkie

Beiträge
712
Reaktionen
18
mit sleep als einzigem Workaround? Also mit beiden Tunern parallel?

Hast du eine Version bei der auch die erste Frequenz funktioniert?
 

rv112

Beiträge
4.059
Reaktionen
107
Nein, ich muss dazu noch -m 1 nutzen. Beide Tuner gehen nicht.

Meine alte Backupversion läuft leider nicht mehr, weil er wegen der .awk meckert. Daher aktuell keine Version die komplett geht.
 

rv112

Beiträge
4.059
Reaktionen
107
Bitte:

Code:
#!/bin/sh
#
# DOCSIS cable load monitor
#
# tool to monitor downstream load on DOCSIS cable networks
#
# https://github.com/sp4rkie/docsis-cable-load-monitor
#
cat > $0_$$.awk << !
func setup( \ )
{ CLARGS = "$0|$1|$2|$3|$4|$5|$6|$7|$8|$9|${10}|${11}|${12}|${13}|${14}|${15}|${16}|${17}|${18}|${19}|${20}" # avoid dangling include files. incore inode still exists system("rm $0_$$.awk") # take care of shell expansion (if security is an issue) setup_lib($#, "awk|" CLARGS, $$, "`pwd`", "`hostname`", "$R_") PRP(CLARGS "\n") # required if Sundtek hardware is in use as we install with '-service' option LD_PL = "LD_PRELOAD=/opt/lib/libmediaclient.so " # where to find your TC4400 cable modem (if any) CABLE_MODEM_IP = "192.168.100.1" # file current recording parameters as incompatible changes must trigger a new RRD generation CONF_FILE = INSTPATH "CableLoadMonitor.cfg" FREQ_FACTOR = 1000000 # default RRDBASE RRDBASE_FILE = INSTPATH "CableLoadMonitor.rrd" RRDBASE_RRASTEPS = 10 # defaults to 10s RRDBASE_HISTSIZE = 60 * 60 * 24 * 7 # defaults to 1 week # default RRDGRAPH RRDGRAPH_NAME = "/var/www/html/" "CableLoadMonitor" RRDGRAPH_EXT = ".png" RRDGRAPH_TMP = RRDGRAPH_NAME RRDGRAPH_EXT "_" RRDGRAPH_WIDTH = 2000 RRDGRAPH_HEIGHT = 1000 RRDGRAPH_Y_UPPER_LIMIT = 200 # scale Y axis to this minimum BWIDTH_SNAPSHOT = RRDGRAPH_NAME "_bwidth.txt" # feel free to add other history sizes (aka generated graphs) as well RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 " |1h" RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 * 6 " |6h" RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 * 24 " |1d" RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 * 24 * 7 " |7d" RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 * 24 * 30 " |30d" RRDGRAPHS[RRDGRAPHS_CNT++] = 60 * 60 * 24 * 365 " |365d" # --- rrdbase_rrasteps = RRDBASE_RRASTEPS rrdbase_histsize = RRDBASE_HISTSIZE rrdgraph_width = RRDGRAPH_WIDTH rrdgraph_height = RRDGRAPH_HEIGHT # --- define this to display a black theme if (++use_black_theme) { IF_BLACK_THEME = IF_BLACK_THEME "--color \"ARROW#ffffff\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--color \"BACK#000000\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--color \"CANVAS#000000\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--color \"GRID#ffffff\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--color \"MGRID#ffffff\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--color \"FONT#ffffff\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--color \"AXIS#ffffff\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--color \"FRAME#ffffff\"" " \\\\\n" IF_BLACK_THEME = IF_BLACK_THEME "--border 1" " \\\\\n" } # --- define this to rescale the sum graph if (use_2nd_yaxis) { IF_2ND_YAXIS_SCALE = 10 IF_2ND_YAXIS = IF_2ND_YAXIS "--right-axis " 1 / IF_2ND_YAXIS_SCALE ":1" " \\\\\n" IF_2ND_YAXIS = IF_2ND_YAXIS "--right-axis-label sum" " \\\\\n" SUM_DEF = SUM_DEF sprintf("DEF:sum_=" RRDBASE_FILE ":sum:AVERAGE", i, i) " \\\\\n" SUM_DEF = SUM_DEF "CDEF:sum=sum_," IF_2ND_YAXIS_SCALE ",/" " \\\\\n" } else { SUM_DEF = SUM_DEF sprintf("DEF:sum=" RRDBASE_FILE ":sum:AVERAGE", i, i) " \\\\\n" }
}
func read_cfg( \ line, CMD, a)
{ if (ex("ls " CONF_FILE, 0, "^(" CONF_FILE ")$")) { CMD = "cat " CONF_FILE #PR("reading last recently used downstream channel frequencies and RRD parameters") FREQ_SPEC_CFG = ex_line(CMD) while ((line = ex_line(CMD)) != -1) { if (match(line, "^RRA:AVERAGE:.*:([0-9]+):([0-9]+)$", a)) { RRA_STEPS_CFG = a[1] HIST_SIZE_CFG = a[2] } } }
}
func exit_(msg \ )
{ PRE(msg) PRE("exiting...") ++ERR; exit
}
func set_freqs(str, \ i, a)
{ if (!match(str, "^[0-9]+(:[0-9]+)*$")) { return 0 } split(str, a, ":") for (i = 1; a[i]; ++i) { FREQ[FREQ_CNT++] = a[i] } return 1
}
func retrieve_down_freqs(freqs, \ URL, ignore, line, WGET, LYNX, i, a)
{ URL = "http://" CABLE_MODEM_IP "/cmconnectionstatus.html" if (freqs == "force_new_scan" || !freqs) { # # specific to TC4400 yet # PR("trying to retrieve downstream channel frequencies from TC4400 modem") WGET = "echo; wget --connect-timeout=1 -t 1 -q --http-user=admin --http-password=\"bEn2o#US9s\" " URL " -O -" LYNX = "lynx -nolist -width 300 -dump -stdin" while ((line = ex_line(WGET)) != -1) { if (match(line, "<script")) { ++ignore } else if (ignore) { if (match(line, "/script?")) { ignore = 0 } } else { print line |& LYNX } } close(LYNX, "to") while (LYNX |& getline line > 0) { if (match(line, "Locked +SC-QAM +Downstream +Bonded +([0-9]+) ", a)) { FREQ[FREQ_CNT++] = a[1] / FREQ_FACTOR } } close(LYNX) } else if (freqs) { PR("evaluating given downstream channel frequencies") if (!set_freqs(freqs)) { exit_("can't handle the given downstream channel frequency specification") } } else { # error -> will exit } PRF("downstream channel frequencies now in use: ") if (!FREQ_CNT) { exit_("could not retrieve any") } PRF("[ " FREQ_CNT " ] ") for (i = 0; i < FREQ_CNT; ++i) { PRF(FREQ[i] " ") BWIDTH_OF[i] = "na" FREQ_SPEC_NEW = FREQ_SPEC_NEW (FREQ_SPEC_NEW ? ":" : "") FREQ[i] } PR("")
}
func assemble_rrdcreate_cmd( \ CMD, i)
{ CMD = "rrdtool create " RRDBASE_FILE " -s 1" " \\\\\n" for (i = 0; i < FREQ_CNT; ++i) { CMD = CMD sprintf("DS:f%02d:GAUGE:120:U:U", i) " \\\\\n" } CMD = CMD sprintf("DS:sum:GAUGE:120:U:U") " \\\\\n" CMD = CMD sprintf("RRA:AVERAGE:0.1:" rrdbase_rrasteps ":" rrdbase_histsize) RRDB_CCMD_NEW = CMD
}
func assemble_rrdgraph_cmd(end, size, \ group, GROUPS, CMD, i, k)
{ # use the first version if interested in average and min too GROUPS = "MAX:max:MIN:min:LAST:last:AVERAGE:avg" GROUPS = "MAX:max:LAST:last" split(GROUPS, group, ":") CMD = "rrdtool graph " RRDGRAPH_TMP " -a PNG -l 0 -u " RRDGRAPH_Y_UPPER_LIMIT * FREQ_FACTOR " \\\\\n" \ "--title=\"Graph generated at \`date\`\"" " \\\\\n" \ "-w " rrdgraph_width " -h " rrdgraph_height " \\\\\n" \ "--end " end " --start end-" size "s" " \\\\\n" CMD = CMD " \\\\\n" CMD = CMD IF_BLACK_THEME " \\\\\n" CMD = CMD IF_2ND_YAXIS " \\\\\n" CMD = CMD " \\\\\n" for (i = 0; i < FREQ_CNT; ++i) { CMD = CMD sprintf("DEF:f%02d=" RRDBASE_FILE ":f%02d:AVERAGE", i, i) " \\\\\n" } CMD = CMD SUM_DEF " \\\\\n" CMD = CMD " \\\\\n" for (i = 0; i < FREQ_CNT; ++i) { if (i < FREQ_CNT / 2) { CMD = CMD sprintf("\"LINE:f%02d#ff0000:%d\"", i, FREQ[i]) " \\\\\n" } else { CMD = CMD sprintf("\"LINE:f%02d#0000ff:%d\"", i, FREQ[i]) " \\\\\n" } } CMD = CMD " \\\\\n" CMD = CMD "\"LINE:sum#00ff00:sum\\\l\"" " \\\\\n" CMD = CMD " \\\\\n" for (k = 1; group[k]; k += 2) { for (i = 0; i < FREQ_CNT; ++i) { CMD = CMD sprintf("\"GPRINT:f%02d:%s:%%3.0lf %%s\"", i, group[k]) " \\\\\n" } CMD = CMD sprintf("\"GPRINT:%s:%s:%%3.0lf %%s\"", "sum", group[k]) CMD = CMD "\" " group[k + 1] "\\\l\"" " \\\\\n" } return CMD
}
func assemble_rrdgraphs_cmd( \ i, a)
{ for (i = 0; i < RRDGRAPHS_CNT; ++i) { split(RRDGRAPHS[i], a, "|") if (a[1] > rrdbase_histsize) { break } RRDGRAPH_CMD[i] = assemble_rrdgraph_cmd("now", gensub(" +", "", "g", a[1])) RRDGRAPH_FILE[i] = RRDGRAPH_NAME "_" a[2] RRDGRAPH_EXT PR("generating graph for: " sprintf("%4s", a[2]) " recording length, size " rrdgraph_width "x" rrdgraph_height " pixels") }
}
func scan_down_channels( \ RRDUPD_STR, BWIDTH_SUM, a, i, k)
{ PRF(strftime("%T: ")) for (i = 0; i < FREQ_CNT; ++i) {
# tuning via mediaclient not in use ATM
# ex("timeout 10 /opt/bin/mediaclient -d /dev/dvb/adapter0/frontend0 -m DVBC -f " FREQ[i] * FREQ_FACTOR " -M Q256 -S 6952000") ex(LD_PL "timeout 10 dvbtune -f " FREQ[i] * FREQ_FACTOR " -s 6952 -qam 256", 0, "Bit error rate: ([0-9]+)$", a) ex("sleep 1") # <=== ZUSAETZLICHE ZEILE a[1] += 0 if (a[1] && !dvbtune_ignerrs) { PR("\n\n" a[0] ", please check your cables\n") } # # in case of very small bandwidth values limit the measurement # interval to something useful to keep the overall scan time sufficiently low. # # the arbitrarily chosen stop value of 80000 appears to be high enough to even # handle high bandwidths with enough accuracy. # if (!ex(LD_PL "timeout 1 dvbsnoop -s bandwidth 8190 -n 80000", 0, "^## PID:.*Avrg: +([^ ]+) ", a)) { # # UPDATE as of 2019_08_03: # - in the event of dvbsnoop failure: no longer exit but retry instead # - you may want to reload your DVB drivers if these crashed # PR("\ndvbsnoop fails for [ " FREQ[i] " ], retrying...") # # place your specific driver reload code here # ex("systemctl stop sundtek; sleep 5; systemctl start sundtek; sleep 20", 1) --i; continue
# exit_("dvbsnoop fails") } BWIDTH_OF[i] = int(a[1] + 0.5) PRF(sprintf("%6s", BWIDTH_OF[i])) BWIDTH_SUM = 0 RRDUPD_STR = "rrdtool update " RRDBASE_FILE " N" for (k = 0; k < FREQ_CNT; ++k) { BWIDTH_SUM += BWIDTH_OF[k] RRDUPD_STR = RRDUPD_STR ":" BWIDTH_OF[k] * 1000 } # # do not update until the initial scan completes # if (BWIDTH_OF[FREQ_CNT - 1] != "na") { RRDUPD_STR = RRDUPD_STR ":" BWIDTH_SUM * 1000 ex(RRDUPD_STR, 2) } } PR(sprintf("%7s", BWIDTH_SUM)) print BWIDTH_SUM > BWIDTH_SNAPSHOT; close(BWIDTH_SNAPSHOT)
}
func generate_rrdgraphs( \ i)
{ for (i = 0; RRDGRAPH_CMD[i]; ++i) { ex(RRDGRAPH_CMD[i]) ex("mv " RRDGRAPH_TMP " " RRDGRAPH_FILE[i], 2) }
}
func watch_the_scenery( \ )
{ # # some inital setup specific to certain devices. this may fail # on one or another device. don't care. # # # fix for: # * Silicon Labs Si2168 card not compatible? · Issue #1 · sp4rkie/docsis-cable-load-monitor # https://github.com/sp4rkie/docsis-cable-load-monitor/issues/1 # ex("echo 0 | sudo tee -a /sys/module/dvb_core/parameters/dvb_powerdown_on_sleep") # # fix for: # * set dtvmode # https://www.unitymediaforum.de/viewtopic.php?p=428995#p428995 # ex("/opt/bin/mediaclient -d /dev/dvb/adapter0/frontend0 --setdtvmode=DVBC") while (1) { generate_rrdgraphs() scan_down_channels() }
}
func usage( \ locked, line, a)
{ PR("Usage: " PRGBNAME) while ((line = ex_line("cat " PRGNAME)) != -1) { if (locked) { if (match(line, "match[^,]+, \"(.+)\"[^\"]+# (.*)$", a)) { PR(sprintf(" %-21s - %s", gensub("\\\\$", "", "g", a[1]), a[2])) } } else { if (match(line, "^func process_cmdline")) ++locked } } PR("\ndefaults:") PR(" -c " sprintf("%-10d", RRDBASE_RRASTEPS) " # 10 secs") PR(" -r " sprintf("%-10d", RRDBASE_HISTSIZE) " # 1 week" ) PR(" -w " sprintf("%-10d", RRDGRAPH_WIDTH) ) PR(" -h " sprintf("%-10d", RRDGRAPH_HEIGHT) )
}
func process_cmdline( \ renew_rrd_base, backup_time, freq_list, i, a)
{ read_cfg() if (FREQ_SPEC_CFG) freq_list = FREQ_SPEC_CFG if (RRA_STEPS_CFG) rrdbase_rrasteps = RRA_STEPS_CFG if (HIST_SIZE_CFG) rrdbase_histsize = HIST_SIZE_CFG # # regexps for arg matching are kept somewhat sloppy to avoid clutter in usage() text output # for (i = 2; i < _ARGC; ++i) { if (match(_ARGV[i] _ARGV[i + 1], "-h$")) { # print this help and exit usage() exit } else if (match(_ARGV[i] " " _ARGV[i + 1], "-f [0-9]+(:[0-9]+)*$")) { # manually specify downstream channel frequencies freq_list = _ARGV[i + 1] ++i } else if (match(_ARGV[i], "-f$")) { # scan a TC4400 for current downstream channel freqs freq_list = "force_new_scan" } else if (match(_ARGV[i] " " _ARGV[i + 1], "-c [0-9]+$")) { # create a RRD base with given RRA steps (in secs) rrdbase_rrasteps = _ARGV[i + 1] ++i } else if (match(_ARGV[i] " " _ARGV[i + 1], "-r [0-9]+$")) { # recording history size (in secs) rrdbase_histsize = _ARGV[i + 1] ++i } else if (match(_ARGV[i] " " _ARGV[i + 1], "-w [0-9]+$")) { # width of generated graph(s) rrdgraph_width = _ARGV[i + 1] ++i } else if (match(_ARGV[i] " " _ARGV[i + 1], "-h [0-9]+$")) { # height of generated graph(s) rrdgraph_height = _ARGV[i + 1] ++i } else if (match(_ARGV[i] " " _ARGV[i + 1] " " _ARGV[i + 2], "-g [0-9]+ [0-9]+$")) { # generate a graph with given end and length (in secs) rrdgraph_histend = strftime("%s") - _ARGV[i + 1] rrdgraph_length = _ARGV[i + 2] i += 2 } else if (match(_ARGV[i], "-i$")) { # ignore errors reported by dvbtune ++dvbtune_ignerrs } else { usage() ++ERR; exit } } retrieve_down_freqs(freq_list) if (rrdgraph_histend) { PR("point in time where the generated graph ends: " strftime("%T", rrdgraph_histend)) PR("time span covered by the generated graph: " rrdgraph_length "s") PR("graph is written to: " RRDGRAPH_NAME RRDGRAPH_EXT) ex(assemble_rrdgraph_cmd(rrdgraph_histend, rrdgraph_length), 2) ex("mv " RRDGRAPH_TMP " " RRDGRAPH_NAME RRDGRAPH_EXT) exit } PR("recording RRA step size: " rrdbase_rrasteps " seconds") PR("recording RRA history size: " \ int(rrdbase_histsize / (60 * 60 * 24)) " day(s) " \ int(rrdbase_histsize % (60 * 60 * 24) / (60 * 60 )) " hour(s) " \ int(rrdbase_histsize % (60 * 60 ) / (60 )) " minute(s) " \ int(rrdbase_histsize % (60 ) ) " second(s) " \ ) if (dvbtune_ignerrs) PR("dvbtune: " "ignore bit errors") assemble_rrdcreate_cmd() assemble_rrdgraphs_cmd() if (split(FREQ_SPEC_CFG, a, ":") != split(FREQ_SPEC_NEW, a, ":")) { if (FREQ_SPEC_CFG) PR("count of monitored channel frequencies did change") renew_rrd_base += 2 } else if (FREQ_SPEC_CFG != FREQ_SPEC_NEW) { if (FREQ_SPEC_CFG) PR("values of monitored channel frequencies did change") renew_rrd_base += 1 } if (RRA_STEPS_CFG != rrdbase_rrasteps \ || HIST_SIZE_CFG != rrdbase_histsize) { if (RRA_STEPS_CFG) PR("RRD base recording parameters did change") renew_rrd_base += 2 } if (renew_rrd_base) { if (ex("ls " RRDBASE_FILE, 0 ,"^(" RRDBASE_FILE ")$")) { backup_time = strftime(".%Y-%m-%d_%T") PR("backing up old RRD data") ex("cp -va " RRDBASE_FILE " " RRDBASE_FILE backup_time) ex("cp -va " CONF_FILE " " CONF_FILE backup_time) } print FREQ_SPEC_NEW > CONF_FILE print RRDB_CCMD_NEW > CONF_FILE close(CONF_FILE) if (renew_rrd_base > 1) { PR("(re)creating the RRD base") ex(RRDB_CCMD_NEW, 2) } } watch_the_scenery()
}
BEGIN { QUIET = 1 setup() process_cmdline() exit
}
END { cleanup() PRP("\n" PRGBNAME " " "exits with: " (ERR ? ERR : 0) " " "error(s)") PRP("====== [" sprintf(" %5d ", PROCINFO["pid"]) "] program stop [" strftime() "] on " HOSTNAME " ======") close(PROTOCOL) exit ERR
}
!
[ -t 0 ] && STDIN="< /dev/null"
eval exec awk -f /usr/local/lib/l5.awklib -f $0_$$.awk $STDIN 2>&1

Und noch die .awk dazu:

Code:
#
# --- awk library VERSION 0.0.6 (as of 2019_12_06) ---
#
# unfortunately some chars must be escaped differently
# depending on awk or shell use e.g. "'" needs to be escaped
# for shell but may not be escaped in awk.
#
# library version of escape_chars():
#
# MODE 0: escape those: *()[]?.+\^$| with \ [ match use ]
# MODE 1: escape : % with % [ printf use ]
# MODE 2: escape : *()[]? \ | '&<>S with \ [ shell use ]
#
func escape_chars(str, mode \ )
{ if (mode == 0) { return gensub("(*|\\(|\\)|\\[|]|?|\\.|+|\\\\|\\^|\\$|\\|)", "\\\\\\1", "g", str) } if (mode == 1) { return gensub("(%)", "%\\1", "g", str) } if (mode == 2) { return gensub("(*|\\(|\\)|\\[|]|?|\\\\|\\||'|&|<|>| )", "\\\\\\1", "g", str) }
}
func _e1(str)
{ return escape_chars(str, 2)
}
func _e2(str)
{ return _e1(_e1(str))
}
func _e3(str)
{ return _e1(_e2(str))
}
func _e7(str)
{ return _e1(_e3(_e3(str)))
}
func e1(str)
{ return "'" _e1(str) "'"
}
func e2(str)
{ return "'" _e2(str) "'"
}
func e3(str)
{ return "'" _e3(str) "'"
}
func e7(str)
{ return "'" _e7(str) "'"
}
func abs(a \ )
{ return a >= 0 ? a : -a
}
func min(a, b \ )
{ return a <= b ? a : b;
}
func max(a, b \ )
{ return a >= b ? a : b;
}
func _simple_cmd(CMD, \ line)
{ CMD = CMD " 2>&1" CMD | getline line; close(CMD) return line
}
#
# $shell variables cannot be addressed here.
# you must forward them from main file via function args.
#
func _PRF(quiet, a, b, c, d, e, f, g, h, \ arr, brr, CMD, line)
{ # logfile rotation if (!(PROTOCOL_LINE_CNT++ % 10000)) { close(PROTOCOL) if (split(_simple_cmd("ls -l --time-style=long-iso " PROTOCOL), arr) == 8 \ && match(arr[5], "^[0-9]+$") \ && arr[5] > 1000000) { CMD = "ls -r " PROTOCOL "* 2>&1" while (CMD | getline line > 0) { if (match(line, "^" PROTOCOL "\\.([0-9])(|\\.gz)$", brr)) { if (brr[1] == 9) { # these are lost _simple_cmd("rm " line) } else { _simple_cmd("mv " line " " PROTOCOL "." brr[1] + 1 brr[2]) } } } close(CMD) print "+++ ROTATING +++" >> PROTOCOL; close(PROTOCOL) _simple_cmd("mv " PROTOCOL " " PROTOCOL ".0") } } if (!quiet) printf a, b, c, d, e, f, g, h printf a, b, c, d, e, f, g, h >> PROTOCOL fflush(PROTOCOL)
}
func _PR(quiet, a \ )
{ _PRF(quiet, "%s\n", a)
}
func PRFP(a, b, c, d, e, f, g, h \ )
{ _PRF(QUIET, a, b, c, d, e, f, g, h)
}
func PRP(a \ )
{ _PR(QUIET, a)
}
func PRF(a, b, c, d, e, f, g, h \ )
{ _PRF(0, a, b, c, d, e, f, g, h)
}
func PR(a \ )
{ _PR(0, a)
}
func PRE(a \ )
{ _PR(QUIET, a) print a > "/dev/stderr"
}
func systemPR(cmd \ )
{ PR(cmd) system(cmd)
}
func systemPRP(cmd \ )
{ PRP(cmd) system(cmd)
}
#
# operation modes
#
# what: how: output:
#
# 0 0 content sorted
# 1 0 indices sorted
# 0 1 content native
# 1 1 indices native
# 0 2 content random
# 1 2 indices random
#
func get_sorted(arr, what, how, \ CMD, i)
{ if (!GET_SORTED_CURRENT) { if (how == 1) { delete GET_SORTED_ARR GET_SORTED_NUM = 1 # asort compat requires start at 1 if (what) { for (i in arr) GET_SORTED_ARR[GET_SORTED_NUM++] = i } else { for (i in arr) GET_SORTED_ARR[GET_SORTED_NUM++] = arr[i] } --GET_SORTED_NUM } else if (how == 0 || how == 2) { system("rm -f " SORT_FILE0) if (what) { for (i in arr) print i > SORT_FILE0 } else { for (i in arr) print arr[i] > SORT_FILE0 } close(SORT_FILE0) delete GET_SORTED_ARR GET_SORTED_NUM = 1 # asort compat requires start at 1 if (how == 0) { CMD = "sort -g " SORT_FILE0 " 2> /dev/null" # dispose err msg if array empty } else { CMD = "unsort -r " SORT_FILE0 " 2> /dev/null" # dispose err msg if array empty } while (CMD | getline i > 0) { GET_SORTED_ARR[GET_SORTED_NUM++] = i } close(CMD) system("rm -f " SORT_FILE0) --GET_SORTED_NUM } } if (++GET_SORTED_CURRENT <= GET_SORTED_NUM) { return GET_SORTED_ARR[GET_SORTED_CURRENT] } else { GET_SORTED_CURRENT = 0 return -1 }
}
# take care to read ALL input
# also in case of error parsing
# otherwise processes may hang
func ex_line(cmd, CMD, out, ret)
{ CMD = "{ " cmd "; } 2>&1" if (!___IS_OPEN[CMD]) { PRP("ex_line open: " CMD) ++___IS_OPEN[CMD] } if (CMD | getline out <= 0) { PRP("ex_line close: " CMD) ___IS_OPEN[CMD] = 0 close(CMD) ret = -1 } return ret == -1 ? ret : out
}
#
# usage samples:
#
# ex("date")
# ex("date", dbg)
# ex("date", dbg, "(Mon|Thu).* ([0-9]+)$")
# ex("date", dbg, "(Mon|Thu).* ([0-9]+)$", ret)
#
# dbg bit msk:
# xxxx xxx0 - cmd to PROTOCOL (default)
# xxxx xxx1 - cmd to SCREEN + PROTOCOL
#
# xxxx x00x - output to PROTOCOL (default)
# xxxx x01x - output to SCREEN + PROTOCOL
# xxxx x1xx - output suppressed
#
# xxxx 0xxx - match to PROTOCOL (default)
# xxxx 1xxx - match to SCREEN + PROTOCOL
#
# xxx0 xxxx - don't check zero output (default)
# xxx1 xxxx - exit if any output
#
# xx0x xxxx - don't suppress 'scanning/ no match' msgs (default)
# xx1x xxxx - avoid clutter
#
# 0xxx xxxx - read data from pipe (default)
# 1xxx xxxx - read data from file==cmd directly
#
# 0 xxxx xxxx - cmd logging possible
# 1 xxxx xxxx - suppress cmd logging completely
#
func ex(cmd, verb, scantext, a, \ CMD, line)
{ delete a EX_V_B0 = and(verb, 1) EX_V_B1 = and(verb, 2) EX_V_B2 = and(verb, 4) EX_V_B3 = and(verb, 8) EX_V_B4 = and(verb, 16) EX_V_B5 = and(verb, 32) EX_V_B7 = and(verb, 128) EX_V_B8 = and(verb, 256) CMD = ROOTPATH "/bin/bash -c '" cmd "' 2>&1" if (!EX_V_B8) if (EX_V_B0) PR("CMD: " cmd); else PRP("CMD: " CMD) if (EX_V_B4) { PRP("checking for ZERO output") scantext = "^(.*)$" } if (!EX_V_B5 && scantext) PRP("scanning output for: <" scantext ">") if (EX_V_B7) { while (getline line < cmd > 0) { if (EX_V_B2) { # any output suppressed } else if (EX_V_B1) { PR(line) } else { PRP(line) } if (scantext && !a[1] && match(line, scantext, a)) { a[1] = a[1] "" # make "if (!a[1])" behave as expected if (EX_V_B3) PR("first match: <" a[1] ">"); else PRP("first match: <" a[1] ">") } } close(cmd) } else { while (CMD | getline line > 0) { if (EX_V_B2) { # any output suppressed } else if (EX_V_B1) { PR(line) } else { PRP(line) } if (scantext && !a[1] && match(line, scantext, a)) { a[1] = a[1] "" # make "if (!a[1])" behave as expected if (EX_V_B3) PR("first match: <" a[1] ">"); else PRP("first match: <" a[1] ">") } } close(CMD) } if (!EX_V_B5 && scantext && !a[1]) { if (EX_V_B3) PR("no match"); else PRP("no match") } if (EX_V_B4 && a[1]) { PR(a[1]) PR("ERROR: unexpected output received, exiting") ++ERR; exit } return a[1]
}
func get_next_arg(res, \ char)
{ if (!ARGV_pos) { ARGV_pos = 2 STR_pos = 1 } if (ARGV_pos < _ARGC) { if (STR_pos <= length(_ARGV[ARGV_pos])) { char = substr(_ARGV[ARGV_pos], STR_pos, 1) if (STR_pos == 1 && char == "-") { ++STR_pos return get_next_arg(res) } else if (STR_pos == 1 && char != "-") { res[0] = "FILE" res[1] = _ARGV[ARGV_pos] STR_pos = 1 ++ARGV_pos return "FILE" } else { res[0] = "CHAR" res[1] = char ++STR_pos return "CHAR" } } else { STR_pos = 1 ++ARGV_pos return get_next_arg(res) } } res[0] = "" res[1] = "" return "EOF"
}
# experimental
func print_hashes( \ num)
{ # scale 0 - 100% to 0 - length(FULL_RANGE) num = int(FILL * length(FULL_RANGE) / 100) # if possible consider endcap if (num) num -= length(">") printf "|" FULL_RANGE "|
|" while (num--) { printf "=" } printf ">
"
}
func clr_hashes( \ )
{ printf " " FULL_RANGE "
"
}
func sendmail(subj, data, sms, verb, addr_to \ )
{ sendmail1(0, subj, data, 0, 0, addr_to, sms, verb)
}
func calc_date_from_epoch(a, \ CMD, line)
{ CMD = "date -d \"1970-01-01 UTC " a " sec\" \"+%T %F\"" CMD | getline line close(CMD) return line
}
func check_alive(mach \ )
{ return ex("ping -c 1 -W 1 " mach, 4, "(1 packets transmitted, 1 received, 0% packet loss, time)")
}
func sys_fn(ext, num \ )
{ return SYS_PFX num "/" ext
}
func sys_get(var, num, \ a, line)
{ getline line < sys_fn(var, num); close(sys_fn(var, num)) if (match(line, " ?([^ ]+)$", a)) { if (VERB) PRP(sys_fn(var, num) " -> " a[1]) } else { PR("ERROR: " sys_fn(var, num) " -> variable has no value, exiting") return } return a[1]
}
func sys_set(var, num, val \ )
{ if (sys_get(var, num) == val) { if (VERB) PRP(sys_fn(var, num) " == " val) } else { PR(sys_fn(var, num) " <- " val " [ NEW ]") print val > sys_fn(var, num); close(sys_fn(var, num)) if (sys_get(var, num) != val) { PR("ERROR: " sys_fn(var, num) " <- variable not settable, exiting") return } }
}
# move machine specific cfg files in place once after install
func one_shot_mv(file, mach \ )
{ if (mach) ex("[ -e " file "." mach " ] && /bin/mv -v " file "." mach " " file)
}
# (de)activate machine specific RC scripts
func SXX_activate(service, on, \ line, a)
{ while ((line = ex_line("ls /etc/rc[0-9S].d/[" (on ? "sk" : "SK") "][0-9][0-9]" service)) != -1) { if (match(line, "^(/etc/rc[0-9S].d/)([skSK])([0-9][0-9]" service ")$", a)) { ex("mv " a[1] a[2] a[3] " " a[1] (on ? toupper(a[2]) : tolower(a[2])) a[3], 16) } }
}
# (de)activate machine specific lines in cfg files
func activate(file, trigger, on, \ found, ret, line, a)
{ # avoid creating soft linked files that copy on themselves ex("rm -f " file ".bk; cp -p " file " " file ".bk") while (getline line < (file ".bk") > 0) { if (match(line, trigger)) ++found if (on) { if (match(line, "^#(.*" trigger ".*)$", a)) { PRP(line " ==> " a[1]) print a[1] > file ++ret } else { print line > file } } else {
# if (match(line, "^([^#].*" trigger ".*)$", a)) { if (match(line, "^((|[^#].*)" trigger ".*)$", a)) { PRP(line " ==> " "#" a[1]) print "#" a[1] > file ++ret } else { print line > file } } } close(file) close(file ".bk") if (!found) PRP("<" trigger ">" " not found") else if (!ret) PRP("<" trigger ">" " already " (on ? "" : "de") "activated") return ret
}
# query current status
func query(file, trigger, \ ret, line, a)
{ while (getline line < file > 0) { if (match(line, "^((|[^#].*)" trigger ".*)$", a)) { ++ret } } close(file) PRP(trigger " is " (ret ? "" : "de") "activated") return ret
}
# like gsub(r, s [, t]) but operates on file f not string t
func gfile(r, s, f, \ line)
{ PRP("gfile: replace <" r "> by <" s ">") # avoid creating soft linked files that copy on themselves ex("rm -f " f ".bk; cp -p " f " " f ".bk") while (getline line < (f ".bk") > 0) { print gensub(r, s, "g", line) > f } close(f) close(f ".bk")
}
func lkp(cnt \ )
{ return substr(LKP, 1 + int(cnt / length(LKP)) % length(LKP), 1) \ substr(LKP, 1 + cnt % length(LKP), 1)
}
func print_progress(cmd, str, \ BKGCMD, CMD, line, a, b, cnt, sgn)
{ sgn[0] = "|" sgn[1] = "/" sgn[2] = "-" sgn[3] = "\\" CMD = "cat /proc/" PROCINFO["pid"] "/stat"; CMD | getline line; close(CMD) split(line, a); BKGCMD = "echo $$; " cmd BKGCMD | getline line CMD = "cat /proc/" line "/stat 2>&1" while (1) { CMD | getline line; close(CMD) split(line, b) if (match(b[5], "^[0-9]+$") && a[5] == b[5]) { printf str " [ " sgn[cnt++ % 4] " ]
" } else { break } "sleep .5" | getline line; close("sleep .5") } print str " [ done ]" return BKGCMD
}
func cleanup( \ )
{ system("rm -f " TMP_FILE "*")
}
func ffs(x, \ n)
{ n = 0 if (!and(x, 0x0000ffff)) { n = 16; x = rshift(x, 16) } if (!and(x, 0x000000ff)) { n += 8; x = rshift(x, 8) } if (!and(x, 0x0000000f)) { n += 4; x = rshift(x, 4) } if (!and(x, 0x00000003)) { n += 2; x = rshift(x, 2) } if (!and(x, 0x00000001)) { n += 1 } return n
}
func setup_lib(argc, argv, procnum, pwd, hostname, is_android, \ t0, i)
{ ERR = 0 _ARGC = argc + 2 split(argv, _ARGV, "|") # shift down for compatibility with # C-style (not sh-style) ARGC ARGV[] for (i = 0; i < _ARGC; ++i) { _ARGV[i] = _ARGV[i + 1] } delete _ARGV[i] PRGNAME = _ARGV[1] match(PRGNAME, "^(.*/|)([^/]+)$", t0) # effectively [ /data/data/com.termux/files/usr ] on android and [ ] otherwise ROOTPATH = is_android INSTPATH = t0[1] PRGBNAME = t0[2] PROTOCOL = PRGNAME ".log" CURRPATH = pwd "/" HOSTNAME = hostname INSTPATH = match(INSTPATH, "^(./|)$") ? CURRPATH : match(INSTPATH, "^/") ? INSTPATH : CURRPATH INSTPATH # charset to build 2 digit prefix, currently base 62 LKP = "0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ" TMP_DIR = ROOTPATH "/tmp" TMP_FILE = TMP_DIR "/tmp." procnum "." SORT_FILE0 = TMP_FILE "S0" SORT_FILE1 = TMP_FILE "S1" UNSORT_FILE = TMP_FILE "U0" TMP_FILE0 = TMP_FILE "0" TMP_FILE1 = TMP_FILE "1" PRP("====== [" sprintf(" %5d ", PROCINFO["pid"]) "] program start [" strftime() "] on " HOSTNAME " ======") cleanup()
}
# --- library end ---
 
Thema:

Auslastung des eigenen Segments ansehen (reloaded)

Auslastung des eigenen Segments ansehen (reloaded) - Ähnliche Themen

  • Auslastung durch aktuelle Corona-Lage

    Auslastung durch aktuelle Corona-Lage: Bis vor wenigen Tagen habe ich nix von irgendwelchen Auslastungen des Netzes durch die Corona-Lage bemerkt, aber seit ca. Montag habe ich immer...
  • Connect Box ping auslastung

    Connect Box ping auslastung: Hallo Zusammen Diese " Werte " sind doch nicht normal Oder ? https://www.directupload.net/file/d/5357/nkwu36cq_jpg.htm RxMER liegt bei 37,5...
  • Auslastung des Netztes

    Auslastung des Netztes: Hallo , Viele Leute schreiben oft von geschwindigkeits einbußesn in den abendstunden . Ich konnte da noch nichts feststellen mit meine 32mbit...
  • Verbindungsabbruch bei Auslastung der Geschwindigkeit

    Verbindungsabbruch bei Auslastung der Geschwindigkeit: Hallo Forum, ich wende mich an euch mit folgendem Problem: 1. Ausstattung FB6360 Firmware-Version 85.04.89-19078 Sync: 70,5 MBit/s 5,5 MBit/s...
  • Auslastung des Internets verschlechtert Telefonqualität

    Auslastung des Internets verschlechtert Telefonqualität: Hallo, wir haben ein Problem, und zwar ist es kaum mehr möglich zu telefonieren, wenn der Downstream bei ca. 1,5MB/s liegt. Es ist dann keinem der...
  • Auslastung des Internets verschlechtert Telefonqualität - Ähnliche Themen

  • Auslastung durch aktuelle Corona-Lage

    Auslastung durch aktuelle Corona-Lage: Bis vor wenigen Tagen habe ich nix von irgendwelchen Auslastungen des Netzes durch die Corona-Lage bemerkt, aber seit ca. Montag habe ich immer...
  • Connect Box ping auslastung

    Connect Box ping auslastung: Hallo Zusammen Diese " Werte " sind doch nicht normal Oder ? https://www.directupload.net/file/d/5357/nkwu36cq_jpg.htm RxMER liegt bei 37,5...
  • Auslastung des Netztes

    Auslastung des Netztes: Hallo , Viele Leute schreiben oft von geschwindigkeits einbußesn in den abendstunden . Ich konnte da noch nichts feststellen mit meine 32mbit...
  • Verbindungsabbruch bei Auslastung der Geschwindigkeit

    Verbindungsabbruch bei Auslastung der Geschwindigkeit: Hallo Forum, ich wende mich an euch mit folgendem Problem: 1. Ausstattung FB6360 Firmware-Version 85.04.89-19078 Sync: 70,5 MBit/s 5,5 MBit/s...
  • Auslastung des Internets verschlechtert Telefonqualität

    Auslastung des Internets verschlechtert Telefonqualität: Hallo, wir haben ein Problem, und zwar ist es kaum mehr möglich zu telefonieren, wenn der Downstream bei ca. 1,5MB/s liegt. Es ist dann keinem der...