Internetauslastung per Leuchtdioden anzeigen lassen

creon

Neuer User
Mitglied seit
20 Jan 2005
Beiträge
120
Punkte für Reaktionen
12
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
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,876
Beiträge
2,303,712
Mitglieder
378,542
Neuestes Mitglied
viktor1181