Powered by Invision Power Board


Seiten:12 ( Zum ersten neuen Beitrag ) Reply to this topicStart new topicStart Poll

> Datenaufkommen der Internet-Verbindung
Tekbaron
Geschrieben am: Sonntag, 27.Januar 2002, 14:57 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




ppp0      Protokoll:Punkt-zu-Punkt Verbindung
         inet Adresse:80.134.245.84  P-z-P:217.5.98.63  Maske:255.255.255.255
         UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1490  Metric:1
         RX packets:131424 errors:0 dropped:0 overruns:0 frame:0
         TX packets:97676 errors:0 dropped:1 overruns:0 carrier:0
         Kollisionen:0 Sendewarteschlangenlänge:3
         RX bytes:12562641 (11.9 Mb)  TX bytes:5789402 (5.5 Mb)

27.01.2002:12390206 5762475  

Geht also :-)


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Frank
Geschrieben am: Dienstag, 22.Januar 2002, 22:50 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Soo - mal wieder was kniffliges (oder auch nicht für Euch Experten :) )
Ich würde gerne den monatlich anfallenden Traffic meiner Internetverbindung erfassen. Eine Möglichkeit wäre der Output von 'ifconfig ppp0' . Leider bekomme ich da aber die beiden Zahlen der aus- und eingehenden Bytes nicht sauber 'herausgetrennt' (mit grep und sed). Außerdem zählt das sicher immer die Bytes seit dem letzten Neustart des Rechners, nehme ich an. Also müsste ich (am besten automatisch) immer beim herunterfahren des Rechners diese Daten auslesen. Wie stelle ich das an ?

Oder gibt es vielleicht ein Programm das all das macht ?


--------------------
user posted image
PMEmail PosterUsers Website
Top
Martin
Geschrieben am: Montag, 28.Januar 2002, 16:47 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Leute !


Zuerst hatten Jörg und ich uns ja am Samstag überlegt, daß es mit /sbin/init.d/halt.local nicht klappen kann, da der pppd schon mit dem zuvor schwindenden Runlevel die Segel streicht. Also in /sbin/init.d/ppp (oder nach FSHS in /etc/init.d/ppp) innerhalb der CASE-Anweisung direkt hinter "stop)" einfügen.

Und dann noch ein ECHT TOLLES Skript zum Summieren: (Ich drücke jetzt die CODE-Taste ! Hoffentlich überlebe ich das ! :)) Hm, nix passiert ? Mal per Hand probieren:
Code
:CODE: oder so...

#! /usr/bin/perl

# Programm zum Extrahieren der PPP-Verbindungsdaten für Frank


# zuerst Parameter verarbeiten
ende()  unless ($#ARGV < 2);
($monat_wanted, $jahr_wanted) = split(/\./, $ARGV[0]);
$filename = $ARGV[1];
ende()  if !defined($monat_wanted) || $monat_wanted =~ m/\D/;
ende()  if !defined($jahr_wanted ) || $jahr_wanted  =~ m/\D/;
ende()  unless (-r $filename);


$recv_sum = 0;    # Summe der empfangenen Bytes
$trsm_sum = 0;    # Summe der gesendeten Bytes


open(STREAM, $filename);
while (defined($in = <STREAM>))  {
   chomp($in);
   next  if $in =~ m/^#/;        # Kommentare überspringen
   next  if $in =~ m/^\s*$/;     # Leerzeilen überspringen

   ($datum, $rest) = split(/\s*:\s*/, $in);
   ($recv, $trsm) = split(/\s+/, $rest);
   ($tag, $monat, $jahr) = split(/\./, $datum);
   if ($monat == $monat_wanted  &&  $jahr == $jahr_wanted) {
       $recv_sum += $recv;
       $trsm_sum += $trsm;
   }
}
close(STREAM);

print STDOUT "Gesendet : $trsm_sum Bytes\nEmpfangen: $recv_sum Bytes\n";


sub ende   {
   die "Format: PPPextract Monat.Jahr Logdateiname\n";
}

:/CODE:



Have fun ! :sglass:


--------------------
Bis dann Martin
PM
Top
Martin
Geschrieben am: Donnerstag, 28.Februar 2002, 14:48 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Frank !

Hm, vielleicht noch irgendwo ein Tippfehler. Ich schicke Dir das Programm einfach mal per eMail.


--------------------
Bis dann Martin
PM
Top
Martin
Geschrieben am: Dienstag, 29.Januar 2002, 11:37 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Frank !

Zu dem Syntaxfehler: Was mir auffällt, ist das Sternchen "*" in dem Ausdruck hinter "unless". Das muß ein Doppelkreuz sein "#" anstelle des "*". Sonst fällt mir nix ein, da das Skript bei mir zu Hause und eben nochmal hier im Test funktioniert hat.

Das Skript ist als separates Programm gedacht, z.B. mit dem Namen "PPPextract" und wird aufgerufen mit
Code

PPPextract Monat.Jahr Logdateiname
Also z.B.
Code

PPPextract 1.2002 /var/log/internet
für eine Summierung der Kosten für Januar 2002 (falls Du die eine Zeile aus meiner Mail vom 25.Januar wie besprochen in das Stopskript eingebaut hast, die ja die Verbindungsdaten nach /var/log/internet schreibt).


--------------------
Bis dann Martin
PM
Top
Frank
Geschrieben am: Mittwoch, 23.Januar 2002, 13:21 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Genau das ist mein Problem - wie jetzt die Daten herausfiltern und am Besten gleich in einem Logfile speichern mit Datum und Summe am Ende ?
Außerdem müsste ich die Abfrage wohl immer beim Herunterfahren des Rechners starten - wie geht das ?


--------------------
user posted image
PMEmail PosterUsers Website
Top
Frank
  Geschrieben am: Montag, 28.Januar 2002, 20:12 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Ein RIESENGROßES Dankeschön, Martin !

Jetzt muss ich nur noch den Code fehlerfrei auf meine Linux-Maschine bekommen ...  :blush:

Nachtrag: BeimAufrufen der Datei erhalte ich immer eine Meldung wegen Syntax-Fehler: syntax error near unexpected token 'unless' ; 'ende()  unless ($*ARGV < 2);
Vielleicht ein Leerzeichen zuviel vor unless ?? Wo soll ich denn das Script überhaupt einbauen ? Oder als separate Datei ausführen ? Oder wie oder was ? Wenn's um Linux geht, muss man mir meistens alles GANZ genau erklären ... Sorry  :blush:



--------------------
user posted image
PMEmail PosterUsers Website
Top
Tekbaron
Geschrieben am: Donnerstag, 24.Januar 2002, 18:53 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Martin Überlesen, oder haste mal wieder Urlaub ?  :D


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Martin
Geschrieben am: Mittwoch, 30.Januar 2002, 17:50 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Frank !

Das klingt nach einem fehlenden Leerzeichen. Guck Dir mal die besagte Zeile für das Stop-Skript an. Die endet mit:
Code

...$/\1 \2/p'` >> /var/log/internet

Und zwischen "\1" und "\2" sollte ein (oder mehrere geht auch) Leerzeichen stehen.


--------------------
Bis dann Martin
PM
Top
Martin
Geschrieben am: Freitag, 25.Januar 2002, 14:52 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Leute !


Ich überlese nix und habe keinen Urlaub, aber ich schalte nicht jeden Tag meinen Rechner an. :)

Also, der sed und grep Bastler schlägt mal wieder zu:

Bei SuSE müßte es doch ein Stop-Skript geben - das Gegenstück zu boot.local in /etc/init.d/irgendwo... Da könnte man folgendes hineinschreiben:

Code
echo `date +%d.%m.%Y`:`/sbin/ifconfig ppp0 | sed -n -e '/RX bytes/s/^.*RX bytes:\([[:digit:]]\+\)[^[:digit:]].*TX bytes:\([[:digit:]]\+\)[^[:digit:]].*$/\1 \2/p'` >> /var/log/internet


Dann hängt er an die Datei /var/log/internet (nur ein Namensvorschlag von mir) eine Zeile an mit dem Format:
    DD.MM.YYYY:(empfangene Bytes) (gesendete Bytes)

Ich hoffe, das funktioniert und trifft die Wünsche ;)

Bis Morgen.



--------------------
Bis dann Martin
PM
Top
Frank
Geschrieben am: Dienstag, 29.Januar 2002, 20:27 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Okay, damit sollte ich jetzt wohl klar kommen ;) Ich habe in dem Stopskript auch noch irgendwie einen Fehler, den die Bytes aus RX und TX sind in der Ausgabe direkt hintereinander - will sagen, ´nur eine Zahl mit SEHR vielen Stellen  :ups:

Aber das kriege ich wohl auch noch hin :satis:


--------------------
user posted image
PMEmail PosterUsers Website
Top
Tekbaron
Geschrieben am: Mittwoch, 23.Januar 2002, 10:49 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Hi Frank so hier mal ein anfang:

Code
/sbin/ifconfig ppp0 | grep 'RX bytes'


gibt :

RX bytes:1285204956 (1225.6 Mb)  TX bytes:2136415560 (2037.4 Mb)

So nun fehlt noch das Datum, und vieleicht trenner, damit man das auch z.b. als csv auswerten kann, Martin ?



--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Martin
Geschrieben am: Freitag, 25.Januar 2002, 14:55 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Nochmal ich


Toller Editor ! Echt toller Editor ! [:sneaky:]

In der wichtigen Zeile stehen zwei Smilies. Diese sind zu ersetzen durch je eine runde Klammer zu.


--------------------
Bis dann Martin
PM
Top
Frank
  Geschrieben am: Donnerstag, 28.Februar 2002, 14:16 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Nachdem ich eine ganze Weile davon ab war, habe ich heute nochmal das Programm aufgerufen - leider bekomme ich nach wie vor eine 'Syntax-Fehler' Meldung:

line 6: syntax error near unexpected token 'unless'

Liegt es vielleicht an den unterschiedlichen Linux Versionen ??


--------------------
user posted image
PMEmail PosterUsers Website
Top
Tekbaron
Geschrieben am: Freitag, 25.Januar 2002, 18:35 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Martin für diesen zweck gibt es den code button !!!


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top

Topic OptionsSeiten:12 Reply to this topicStart new topicStart Poll