Hallo,
ich hab nen LCD display an meinen router angeschlossen, das auch soweit funktioniert. (mit dem lcd.o modul, also echo "XXXX" >/dev/lcd).
nun möcht ich gerne folgendes darauf anzeigen lassen:
1. Zeile: Datum/Zeit (soweit kein problem)
2. Zeile: die IP von PPP0 (wie bekomm ich die raus, so dass ich sie mit "echo" ans lcd übergeben kann? ifconfig, grep inet addr, dann irgendwie abschneiden ???)
3. Zeile: aktuelle up- und download geschwindigket in kb/s (siehe 2. Zeile, wie bekomm ich die raus?)
4. Zeile CPU auslastung in % + Balken (wie bekomm ich die cpu-auslastung raus? am besten im format 0-100)
wär kuhl wenn mir da jemand helfen könnte, wie gesagt, alles so das ich es mit "echo" übergeben kann.
danke
DSL-status über LCD-Display anzeigen
- blackm
- Moderator und Co-Admin
- Beiträge: 5921
- Registriert: 02.06.2002 15:03:17
- Lizenz eigener Beiträge: MIT Lizenz
Re: DSL-status über LCD-Display anzeigen
Das geht mit folgendem Scriptschwen hat geschrieben:2. Zeile: die IP von PPP0 (wie bekomm ich die raus, so dass ich sie mit "echo" ans lcd übergeben kann? ifconfig, grep inet addr, dann irgendwie abschneiden ???)
Code: Alles auswählen
#! /usr/bin/perl
@out = `/sbin/ifconfig`;
$c1 = 0;
foreach $b (@out){
$c1_1 = $c1 + 1;
if($b =~ /ppp[0-9]+/){
$out[$c1_1] =~ /^.*?:([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*$/;
$inet_ip = $1;
}
$c1++;
}
print $inet_ip, "\n";
Schau dir mal pppstats an, vielleicht gibt es ja diese Werte aus...3. Zeile: aktuelle up- und download geschwindigket in kb/s (siehe 2. Zeile, wie bekomm ich die raus?)
by, Martin
Schöne Grüße
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
Martin
Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden
so, ich könnt die geschwindigkeit theoretisch mit den angaben von /proc/net/dev ausrechnen, oder?!
also im abstand von 1 sek die übermittelten bytes abfragen und dann bytes(1sekspäter)-bytes/1024= kb/s oder?
bloß wie krieg ich das hin?!
mit cat /proc/net/dev |grep "ppp0" krieg ich ja nur die ganze zeile...im grunde das gleiche problem wie bei der ip.
also im abstand von 1 sek die übermittelten bytes abfragen und dann bytes(1sekspäter)-bytes/1024= kb/s oder?
bloß wie krieg ich das hin?!
mit cat /proc/net/dev |grep "ppp0" krieg ich ja nur die ganze zeile...im grunde das gleiche problem wie bei der ip.
fallses jemanden interessiert:
t_diff_in und t_diff_out sind dann jeweils in und out speed...
Code: Alles auswählen
mon_time=1
mon_device=ppp0
mon_accuracy=2
t_old_in=`cat /proc/net/dev | grep $mon_device | sed 's/.*:\(.*\)/\1/' | awk '{print $1}' | bc`
t_old_out=`cat /proc/net/dev | grep $mon_device | sed 's/.*:\(.*\)/\1/' | awk '{print $9}' | bc`
sleep $mon_time
t_new_in=`cat /proc/net/dev | grep $mon_device | sed 's/.*:\(.*\)/\1/' | awk '{print $1}' | bc`
t_new_out=`cat /proc/net/dev | grep $mon_device | sed 's/.*:\(.*\)/\1/' | awk '{print $9}' | bc`
t_diff_in=`echo "($t_new_in-$t_old_in)/1024" | bc -l | sed "s/\(.*\..\{$mon_accuracy\}\).*/\1/"`
t_diff_out=`echo "($t_new_out-$t_old_out)/1024" | bc -l | sed "s/\(.*\..\{$mon_accuracy\}\).*/\1/"`