Благодаря ти zeridon, че си преместил темата.
След няколко опита тип направи си сам – изкочиха няколко проблема:
1.Идеята да се пише постоянно във файл не е добра – в смисъл, че при интензивен трафик диска луд ще стане ;-). Може би само в края на сесията.
2.Ресетването на брояча на
ifconfig е кофти работа. Оказва се, че при 32 битов драйвер брояча сам се ресетва на 4GB (2^32). ако искаме принудително да го направим – единственото решение е:
#modprobe -r drivername && modprobe drivername , което не е особено интелигентно. И както се досещате, ако драйвера е компилиран в ядрото – само рестарт на машината.
3.Perl не става за тази работа. И за да се обоснова – следния глупав скрипт вдига
load average: 3.51 и нагоре :-(
GeSHi (Perl):
#!/usr/bin/perl
my $nic = eth1; #tuk moje da se sloji nqkakvo uslovie za proverka
while ($nic eq eth1)
{
my $in = `ifconfig $nic |grep bytes|cut -d":" -f2|cut -d" " -f1`; #vhodqsht trafik
my $out = `ifconfig $nic |grep bytes|cut -d":" -f3|cut -d" " -f1`; #izhodqsh trafik
if ($in<2**32 | $out<2**32)
#proverka za stoinosta na broqchite poneje pri 32bit kernel driver
#se resetvat na 4GB trafik. Tuk moje da se prodylji s "else" eventualno
{
print "in:",($in/1024),"KB, out:",($out/1024),"KB, both:",(($in+$out)/1024),"KB\n";
#za po choveshki izgled delim na 1024 za da preobrazuvame bytes/Kbytes, no tryabva da se pooprawqt
#zakrygleniqta a i izhoda e smotan ;-)
}
}
Еми това е – очевидно само идеята ще си остане.
Честита нова година!