Internetauslastung per Leuchtdioden anzeigen lassen

creon

Neuer User
Mitglied seit
20 Jan 2005
Beiträge
107
Punkte für Reaktionen
2
Punkte
18
Jeder kennt's: Man weiß nicht, ob eine Internetseite nicht lädt, weil irgendwer was im Internet macht, oder weil der Server nicht reagiert.
Infolgedessen rufe ich immer die Webseite der Fritzbox auf und schaue nach.

Das war mir zu lästig, ich möchte an meiner Fritzbox direkt ablesen können, inwiefern das Netzwerk ausgelastet ist. Da DECT und WLAN ohnehin immer aktiv ist, soll eigentlich nur die Power-LED ihren "alten" Dienst tun und mir anzeigen, ob die Fritzbox eingeschaltet ist und Sync hat. Die restlichen LEDS sollen von rechts nach links anzeigen, wie ausgelastet das Netz gerade ist, d.h.:

- keine Last: alle LEDs aus (außer Power)
- wenig Last: Internet-LED an
- mittlere Last: Internet + Festnetz LED an
- viel Last: alle außer INFO an
- volle Last: alle LEDs an

Das folgende Skript macht seinen Job, sofern die Fritzbox Telnet-Zugang hat und die INFO-LED auf Dect-Status eingestellt ist. Gestartet wird es bei meiner 7270 über /var/flash/callog, welches bei ganz neuen Fritzboxen aber nicht mehr existiert. Man kann es auch einfach nach jedem Neustart der Fritzbox manuell über telnet starten. Telnet muss aber in jedem Fall freigeschaltet sein. Bei früheren Fritzboxen (7170 und vorher)funktioniert die LED-Ansteuerung etwas anders.

Die Grenzwerte sind in meinem Fall optimiert für eine 16.000 kbit/s Leitung. Man muss sie evtl. anpassen, sofern die Leitungswerte abweichen. Hierbei sei freigestellt, ob man eine logarithmische oder lineare Skala nimmt. Ich hab mich für eine lineare Skala entschieden.

/data/ledstatus.sh
Code:
#!/bin/sh
new=0
newstat=0
while [ 1 ]
do
#Messen
  old=$new
  new=`sed -e '15!d;s/[^-]*-[ ]*//' /proc/net/avm_pa/vpids`
  delta=`expr $new - $old`

#Auswertung
  oldstat=$newstat
  if   [ $delta -le  250000 ]; then
    newstat=0
  elif [ $delta -le 2000000 ]; then
    newstat=1
  elif [ $delta -le 5000000 ]; then
    newstat=2
  elif [ $delta -le 8000000 ]; then
    newstat=3
  else
    newstat=4
  fi

#Led setzen
  if [ $oldstat -ne $newstat ]; then
    case $newstat in
      0)
        /bin/led-ctrl internet_abgebaut festnetz_abgebaut wlan_off dect_abgeschaltet
        ;;
      1)
        /bin/led-ctrl internet_aufgebaut festnetz_abgebaut wlan_off dect_abgeschaltet
        ;;
      2)
        /bin/led-ctrl internet_aufgebaut festnetz_aufgebaut wlan_off dect_abgeschaltet
        ;;
      3)
        /bin/led-ctrl internet_aufgebaut festnetz_aufgebaut wlan_on dect_abgeschaltet
        ;;
      4)
        /bin/led-ctrl internet_aufgebaut festnetz_aufgebaut wlan_on dect_aktiv
        ;;
     esac
  fi
sleep 5
done

/var/flash/calllog
Code:
#!/bin/sh
if [ ! -f /tmp/ledstatus ]; then
   touch /tmp/ledstatus
   /data/ledstatus.sh &
fi
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.