[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Traffic-accounting ?



Markus Boas <ryven@gmx.de> wrote: 
> Ich habe ein Programm für einen einfachen Trafficcounter gesucht und
> hab am  Ende mit ifconfig awk und etwas Bash selbst was gestrickt. Da

Ich habe mir da auch mal selbst was gescriptet (läuft bei mir
allerdings auf einem einzelnen Rechner, müsste also entsprechend
angepasst werden).

hth 

Ulrich

#!/usr/bin/perl -w

$up = 0;     # sum of uploads
$down=0;    # sum of downloads

open(DOWN, "/var/log/net_download") or die "Die Datei fr Downloads wurde
nicht gefunden: $!\n"; foreach ( <DOWN> ) {
    chomp $_;
    $down += $_;
}
close DOWN;

open(DOWN_AKTUELL, "/sys/class/net/eth0/statistics/rx_bytes") or die
"Die Datei fr AKTUELLE-Downloads wurde nicht gefunden: $!\n"; foreach (
<DOWN_AKTUELL> ) {    chomp $_;
    $down += $_;
}
close DOWN_AKTUELL;

open(UP, "/var/log/net_upload") or die "Die Datei fr Uploads wurde nicht
gefunden: $!\n"; foreach ( <UP> ) {
    chomp $_;
    $up += $_;
}
close UP;

open(UP_AKTUELL, "/sys/class/net/eth0/statistics/tx_bytes") or die "Die
Datei fr AKTUELLE-Uploads wurde nicht gefunden: $!\n"; foreach (
<UP_AKTUELL> ) {    chomp $_;
    $up += $_;
}
close UP_AKTUELL;

$down = $down/1048576;
$up = $up/1048576;

print ("Die monatliche Downloadmenge beträgt: ");
if ( $down < 100 ) {
    print " ";
    if ( $down < 10 ) {
        print " ";
    }
}
printf (" %.1f MB \n", $down); 

print ("Die monatliche Uploadmenge beträgt:   ");
if ( $up < 100 ) {
    print " ";
    if ( $up < 10 ) {
        print " ";
    }
}
printf (" %.1f MB", $up); 
print "\n";

# EOF

Bemerkung:
 die /var/log/net_* werden monatlich rotiert, so dass ich dann auch
Monats-Statistiken anzeigen lassen kann (die mir cron per Mail
zuschickt)



Reply to: