PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahlenwerte in Textdatei addieren lassen



formtapez
21-01-2002, 09:06
Moin moin !

Ich lasse mir bei jeder Neu-Einwahl ins Internet die übertragenen Datenmengen in eine Textdatei mitloggen (per ifconfig).

Jetzt habe ich eine TRAFFIC.LOG die folgendermassen ausschaut:

RX bytes:1675799523 (1598.1 Mb) TX bytes:451251567 (430.3 Mb)
RX bytes:1012619926 (965.7 Mb) TX bytes:249370329 (237.8 Mb)
RX bytes:861674635 (821.7 Mb) TX bytes:452775429 (431.8 Mb)
usw..

Ich suche nach einer möglichkeit, die Zahlen zeile-für-zeile Addieren zu lassen.

Hat jemand eine Idee ?

MfG
formtapez

fork
21-01-2002, 09:51
perl -e 'for(<>) { /RX bytes:([0-9]+).*TX bytes:([0-9]+)/; $RX+=$1; $TX+=$2;} print "RX: $RX\nTX: $TX\n" ' traffic.log

Alles klar oder?

TommeS73
21-01-2002, 10:16
wohl ein wenig zu spät ;)



#!/usr/bin/perl
open( FH, "TRAFFIC.LOG" ) || die "Kann Datei nicht öffnen\n";
while (<FH>) {
chomp;
if ( $_ =~ m/RX bytes:\d* \((.*?) Mb\) TX bytes:\d* \((.*?) Mb\)/ ) {
print $1+ $2, " MB (RX+TX)", "\n";
}
}

formtapez
21-01-2002, 10:22
Vielen Dank euch beiden für die Schnelle hilfe !

Mit Perl wollte ich mich schon immer mal befassen :)

TommeS73
21-01-2002, 10:35
@formtapez: kein Problem,

auch wenn mir fork sein Beispiel besser erscheint.

PS: Ich hoffe Du hast gemerkt, dass fork und ich verschiedene Sachen berechnen - fork RX und TX für die gesamte Datei und ich jeweils RX plus TX für die Zeile.

@fork: Kompliment - vielleicht schaffe ich es auch mal so elegant

formtapez
21-01-2002, 11:41
jap das ist mir aufgefallen ;-)

Daniel666
18-02-2002, 22:08
Hallo

Mich würde das Skript interessieren, mit dem du die Daten in die traffic.log eintragen lässt...

formtapez
23-02-2002, 13:24
kein problem. ich lasse ein script täglich laufen um z.b. den reconnect zu realisieren. vor dem HANGUP musst du nur folgendes ausführen:

/sbin/ifconfig | grep "bytes:" | head -n 5 | tail -n 1 >> /home/formtape/traffic.log



M.f.G.
-formtapez-