![](https://seccdn.libravatar.org/avatar/9d8b041a5d818ff9d01ce8a8951c920a.jpg?s=120&d=mm&r=g)
Hallo, wollte mir mit grep und cat aus dem ifconfig Befehl die Gesendetet und Empfangen Daten auslesen!? Komme aber leider nicht weiter -> ifconfig eth0 | grep 'RX' | Könnte mir einer von euch mal helfen! Wollte mir die Infos in meinem Karamba ausgeben lassen! Wäre nett wenn mir einer von euch helfen würde! gruss tomek
![](https://seccdn.libravatar.org/avatar/9d8b041a5d818ff9d01ce8a8951c920a.jpg?s=120&d=mm&r=g)
Holger Daehre schrieb:
ifconfig eth0 | sed -n 's/.*RX packets:\([0-9]*\).*/\1/p'
Ja das ist es fast .... Ich wollte die packete nicht sonderen RX bytes und zwar in MB oder in kB! Wie passe ich das denn ganu an .. verstehe die krötischen Zeichen noch nicht Damit bekomme ich ja die Ausgabe in Bytes .. ifconfig eth0 | sed -n 's/.*RX bytes:\([0-9]*\).*/\1/p' Meine Frage jetzt .. wie schiebe ich ihn jetzt weiter ... könntest du mir das mal erklären! gruss tomek
![](https://seccdn.libravatar.org/avatar/4fd359b835b799e81c91e192f5efdd8f.jpg?s=120&d=mm&r=g)
Ich wollte die packete nicht sonderen RX bytes und zwar in MB oder in kB!
Danach hattest Du aber nicht gefragt. Ifconfig gibt nun mal nur die Paketanzahl aus, daraus kann man keine Trafficmenge bestimmen. Den Traffic könnte man aber z.B. so ermitteln : cat /proc/net/dev| grep "eth0:"|awk -F " " '{sub(" eth0:",""); print "TX: " (($9)/1024)/1024 " MB"}' cat /proc/net/dev| grep "eth0:"|awk -F " " '{sub(" eth0:",""); print "RX: " (($1)/1024)/1024 " MB"}'
![](https://seccdn.libravatar.org/avatar/9d8b041a5d818ff9d01ce8a8951c920a.jpg?s=120&d=mm&r=g)
Holger Daehre schrieb:
cat /proc/net/dev| grep "eth0:"|awk -F " " '{sub(" eth0:",""); print "TX: " (($9)/1024)/1024 " MB"}' cat /proc/net/dev| grep "eth0:"|awk -F " " '{sub(" eth0:",""); print "RX: " (($1)/1024)/1024 " MB"}'
Gute Idee nur bei mir muss es so lauten .. nur leider bekomme ich die Ausgabe wieder in Bytes .. und ich will sie in MB haben .... Wie kann ich das ändern ... cat /sys/class/net/eth0/statistics/rx_bytes Leider gibt es keine rx_mb oder so .... gruss tomek
![](https://seccdn.libravatar.org/avatar/4bad96c02dc7cb827e26ed5afa1c309d.jpg?s=120&d=mm&r=g)
Hi On Tuesday 04 May 2004 23:27, Thomas Lewandowski wrote:
Holger Daehre schrieb:
cat /proc/net/dev| grep "eth0:"|awk -F " " '{sub(" eth0:",""); print "TX: " (($9)/1024)/1024 " MB"}' cat /proc/net/dev| grep "eth0:"|awk -F " " '{sub(" eth0:",""); print "RX: " (($1)/1024)/1024 " MB"}'
Gute Idee nur bei mir muss es so lauten .. nur leider bekomme ich die Ausgabe wieder in Bytes .. und ich will sie in MB haben ....
Das ist schon geändert! Beachte das "/1024)/1024" das macht aus Bytes MB.
Wie kann ich das ändern ... Leider gibt es keine rx_mb oder so .... Du scheinst unbedingt nach einer Möglichkeit zu suchen den "xxx MB"-Ausdruck in der Ausgabe von ifconfig rauszufischen. Das ist aber gar nicht nötig. Man kann das doch auch aus den bytes ausrechnen lassen.
In awk ist übrigens ein grep eingebaut. Die Manpage von awk liest sich zugegebenermaßen nicht gerade angenehm. Aber da muss man durch :-) Man kann jede Zeile mit einem pattern anfangen und { action statement } hinten dran setzten. Patterns in // werden als regex wie in egrep aufgefasst. Die action wird nur bei positivem match ausgeführt. Auch sub ist unnötig weil man sich mit $2 auch die zweite Spalte ausgeben lassen kann. cat /proc/net/dev| awk '/eth0/ {print "RX: " ($2)/1024/1024 " MB"}' In der zehnten Spalte stehen die Transmittierten Bytes. cat /proc/net/dev| awk '/eth0/ {print "TX: " ($10)/1024/1024 " MB"}' Dennoch sollte man beachten, dass ifconfig nicht genau ist. Insbesondere bei ppp-devices in Verbindung mit dial on demand geht das komplett in die Hose. mfg Axel
![](https://seccdn.libravatar.org/avatar/7b33cb1e776e35b87edb8ef09f0c888f.jpg?s=120&d=mm&r=g)
Hallo, Am Tue, 04 May 2004, Holger Daehre schrieb:
cat /proc/net/dev| grep "eth0:"|awk -F " " '{sub(" eth0:",""); print "TX: " (($9)/1024)/1024 " MB"}'
Useless use of cat and grep. awk '/eth0:/ { ... }' /proc/net/dev ersetzt das cat und das grep. awk '/eth0:/{ rx=$1; sub("[^:]*:","",rx); tx=$9; printf "RX: %d (%2.1f MB), TX: %d (%2.1f MB)\n", rx, rx / 1048576, tx, tx / 1048576; }' /proc/net/dev -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.
![](https://seccdn.libravatar.org/avatar/6936a4ff0b963c230304ddb19b641a33.jpg?s=120&d=mm&r=g)
Am Dienstag, 4. Mai 2004 21:35 schrieb Thomas Lewandowski:
Hallo,
wollte mir mit grep und cat aus dem ifconfig Befehl die Gesendetet und Empfangen Daten auslesen!? Komme aber leider nicht weiter ->
# statistik von ifconfig ausschneiden der beiden zeilen # nur die beiden ersten zeilen nehmen # mehrere leerzeichen auf eines komprimieren # ausschneiden der spalten ... fertig # man kann auch nur mit head|tail die zeilen fischen ... /sbin/ifconfig eth0 | grep 'RX\|TX' | \ head -2 | tr -s ' ' | \ cut -f2,3 -d ' ' oder # netstat gibt auch statistik aus, awk vergleicht erste spalte # d.h. $1 auf iface-name und gibt 4. und 8. spalte aus netstat -i | awk '{ if ($1 ~ /^eth0/) print $4, "\t", $8 }' # oder eine kombination von ifconfig und awk oder, oder, oder aber achtung (s. man ifconfig) If you want per-address statistics you should add explicit accounting rules for the address using the ipchains(8) command. gruss dominik
![](https://seccdn.libravatar.org/avatar/9d8b041a5d818ff9d01ce8a8951c920a.jpg?s=120&d=mm&r=g)
Dominik Schopper schrieb:
/sbin/ifconfig eth0 | grep 'RX\|TX' | \ head -2 | tr -s ' ' | \ cut -f2,3 -d ' '
netstat -i | awk '{ if ($1 ~ /^eth0/) print $4, "\t", $8 }'
Beide Befehle funktionieren wunderbar ... ich würde aber den oberen vorziehen. Ich würde aber gerne die Angabe in MB oder kB haben RX bytes:5492878 (5.2 Mb) TX bytes:546742 (533.9 Kb) Also die Werte in den Klamern und am besten einzeln. Ich komme leider noch nicht klar mit den kryptischen Befehlen klar. Wäre also wirklich sehr nett... gruss tomek
![](https://seccdn.libravatar.org/avatar/6936a4ff0b963c230304ddb19b641a33.jpg?s=120&d=mm&r=g)
hallo tomek! Am Dienstag, 4. Mai 2004 23:15 schrieb Thomas Lewandowski:
Dominik Schopper schrieb:
/sbin/ifconfig eth0 | grep 'RX\|TX' | \ head -2 | tr -s ' ' | \ cut -f2,3 -d ' '
für die rx ausgabe: /sbin/ifconfig eth0 | grep 'RX' | \ tail -1 | tr -s ' ' | \ cut -f2-5 -d ' ' für die tx-ausgabe: /sbin/ifconfig eth0 | grep 'RX' | \ tail -1 | tr -s ' ' | \ cut -f6-9 -d ' ' ist zwar nicht schön, aber selten! mit tail nehme ich die letzte gefundene zeile und mit cut die jeweiligen Spalten ... awk und sed sind aber kürzer ... gruss dominik
participants (5)
-
Axel Heinrici
-
David Haller
-
Dominik Schopper
-
Holger.Daehre@t-online.de
-
Thomas Lewandowski