vnstat Daten verarbeiten ...

Bash, Shell, PHP, Python, Perl, CGI
xamibor
Posts: 211
Joined: 2003-03-11 16:52

vnstat Daten verarbeiten ...

Post by xamibor » 2004-12-07 11:21

Hi,

Das Ziel was ich erreichen will: Ich will aus der vnstat datenbank mir die Daten selber zusammen stellen. Und mir dann per SMS zusenden ... Gateway anbindung ist nicht das Problem sondern die Zuordnung der Daten aus der DB.

Die Ausgabe von vnstat bis her.
received: 22.98 MB (55.0%)
transmitted: 18.09 MB (45.0%)
total: 41.08 MB

rx | tx | total
-----------------------+------------+-----------
yesterday 1.75 MB | 1.95 MB | 3.71 MB
today 0.61 MB | 0.78 MB | 1.39 MB
-----------------------+------------+-----------
estimated 0 MB | 0 MB | 0 MB
Die Datenbank hat folgende Ausgabe:
version;3
active;1
interface;venet0
nick;venet0
created;1101381159
updated;1102413900
totalrx;22
totaltx;18
currx;59843830
curtx;24542955
totalrxk;1010
totaltxk;102
btime;1097003875
d;0;1102374000;0;0;627;800;1
d;1;1102287600;1;1;773;981;1
d;2;1102201200;1;1;46;272;1
d;3;1102114800;0;0;841;760;1
d;4;1102028401;1;1;29;282;1
d;5;1101942001;1;1;41;113;1
d;6;1101855601;1;1;122;320;1
d;7;1101769201;0;0;1001;1020;1
d;8;1101682801;11;5;257;82;1
d;9;1101596400;0;0;951;917;1
d;10;1101510000;0;0;666;780;1
d;11;1101423600;1;0;40;982;1
d;12;1101381159;0;0;736;985;1
d;13;0;0;0;0;0;0
d;14;0;0;0;0;0;0
d;15;0;0;0;0;0;0
d;16;0;0;0;0;0;0
d;17;0;0;0;0;0;0
d;18;0;0;0;0;0;0
d;19;0;0;0;0;0;0
d;20;0;0;0;0;0;0
d;21;0;0;0;0;0;0
d;22;0;0;0;0;0;0
d;23;0;0;0;0;0;0
d;24;0;0;0;0;0;0
d;25;0;0;0;0;0;0
d;26;0;0;0;0;0;0
d;27;0;0;0;0;0;0
d;28;0;0;0;0;0;0
d;29;0;0;0;0;0;0
m;0;1101855601;7;8;431;456;1
m;1;1101381159;15;9;579;670;1
m;2;0;0;0;0;0;0
m;3;0;0;0;0;0;0
m;4;0;0;0;0;0;0
m;5;0;0;0;0;0;0
m;6;0;0;0;0;0;0
m;7;0;0;0;0;0;0
m;8;0;0;0;0;0;0
m;9;0;0;0;0;0;0
m;10;0;0;0;0;0;0
m;11;0;0;0;0;0;0
t;0;1101682801;11;5;257;82;1
t;1;1102287600;1;1;773;981;1
t;2;1101855601;1;1;122;320;1
t;3;1102201200;1;1;46;272;1
t;4;1102028401;1;1;29;282;1
t;5;1101942001;1;1;41;113;1
t;6;1101423600;1;0;40;982;1
t;7;1101769201;0;0;1001;1020;1
t;8;1101596400;0;0;951;917;1
t;9;1101381159;0;0;736;985;1
h;0;1102377300;190;223
h;1;1102380901;1;1
h;2;1102384500;0;0
h;3;1102388100;1;1
h;4;1102391700;0;0
h;5;1102395301;0;0
h;6;1102398900;147;135
h;7;1102402500;0;0
h;8;1102406100;1;0
h;9;1102409700;1;1
h;10;1102413388;271;416
h;11;1102413900;15;23
h;12;1102334100;244;289
h;13;1102337700;2;9
h;14;1102341300;10;17
h;15;1102344900;69;93
h;16;1102348500;38;66
h;17;1102352100;720;815
h;18;1102355701;194;185
h;19;1102359300;3;2
h;20;1102362900;91;149
h;21;1102366501;2;9
h;22;1102370100;2;1
h;23;1102373701;12;34
Ich will folgendes ausgaben: rx, tx und total.

total ist nicht das Problem nur wo befindet sicht rx und tx
wenn mann folgendes Elemente ausliest:
currx;59843830
curtx;24542955
totalrxk;1010
totaltxk;102
kommt nicht das ergebnis:
today 0.61 MB | 0.78 MB | 1.39 MB
raus ....

Hier das Script welches ich gerade versuche zu Basteln:
# vnstat start
`vnstat -u`;

# vnstat DB read
@vnstat_db=`vnstat --dumpdb`;


# auwerten
foreach $zeile(@vnstat_db)
{
@zeileMonat=split(";",$zeile);

#$rx = 0;
# Das weiß ich nicht genau was ich eintragen soll ... nach welcher
# Variable er suchen soll ...
if ($zeileMonat[0] eq "totalrxk"){ $rx = $zeileMonat[1]; }

if ($zeileMonat[0] eq "curtx"){ $tx = $zeileMonat[1]; }


}
# Traffic in MB berechnen
$rx = $rx / (1024 * 1024);
$tx = $tx / 1024;
# Traffic am heutigen Tag / zu diesem Zeitpunkt

print "Empfangen: $rxn";
print "Gesendet: $txn";


# Gesamttraffic
$SUMM_DATA = $rx + $tx;

print "Gesammt-Traffic: $SUMM_DATAn";
Ich wäre Dankbar für Hilfe.

Danke

niemand
Posts: 142
Joined: 2003-12-12 18:36

Re: vnstat Daten verarbeiten ...

Post by niemand » 2004-12-07 14:54

Warum nicht einfach die Ausgabe von VNStat nehmen, die gewünschten Sachen mit z.B. awk rausholen und weiterverarbeiten? Ansonsten findest du die Zuordnungen, bzw. wie das aus der Datenbank berechnet wird, am Ehesten in den Sourcen von vnstat selbst.

cu

xamibor
Posts: 211
Joined: 2003-03-11 16:52

Re: vnstat Daten verarbeiten ...

Post by xamibor » 2004-12-07 16:40

Sicher würde ich auch ohne weiteres machen ... nur der code ist nicht offen dafgelegt oder ich habe da etwas übersehen ....

Hin zu kommt das die generierte email mehr als 160 Zeichen hat.

Und das Script soll auch noch erweiter werden .... es soll prüfen ob der wert $limit (z.B. 10 GB) überschritten wird und dann eine "Notfall SMS" raussenden.

Das Script selber wird dann alle 5 Minuten per cron aufgerufen welches die Rutine $limit über prüft.

lg

wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: vnstat Daten verarbeiten ...

Post by wgot » 2004-12-07 17:20

Hallo,
xamibor wrote:nur der code ist nicht offen dafgelegt
wie hast Du's denn installiert?

Source gibt's hier: http://humdi.net/vnstat/

Gruß, Wolfgang

niemand
Posts: 142
Joined: 2003-12-12 18:36

Re: vnstat Daten verarbeiten ...

Post by niemand » 2004-12-10 15:20

Wo ist das Problem mit den 160 Zeichen? Die Daten rausholen, die man benötigt - ich weiß ja nicht, was genau du vor hast, aber die paar Zahlen aus der Standardausgabe von vnstat sind keine 160 Zeichen.
Nach dem Rausholen in Variablen packen und nach belieben weiterverarbeiten -> prüfen, ob über 10GB, ggf. SMS ...