Проблема во FreeBSD заключалась в traflog он упорно не хотел через крон выкидывать статистику в файл, хотя в ручную делал это прекрасно
traflog -i rl0 -no netbill_fmt >> $NACCTDOUTпоходу это баг в traflog, и его врядли когда нибудь исправят, так как проект уже мертвый!
Решение
ставим ipcad
cd /usr/ports/net-mgmt/ipcad
make install clean
правим /usr/local/etc/ipcad.conf
меняем с capture-ports disable; на capture-ports enable;
ставим свои интерфейсы interface rl1 netflow-disable;
правим savetraf.sh
удаляем !!
-------------------------
/usr/local/bin/trafdump all
/usr/local/bin/trafsave all
if [ ! -e $GETTRAFLOCK ]; then
##
## There must be lines for all interfaces we listen on with trafd
##
# For rl0 interface
traflog -i rl0 -no netbill_fmt >> $NACCTDOUT
# For rl1 interface
#traflog -i rl1 -no netbill_fmt >> $NACCTDOUT
# Another interfaces goes there...
fi
---------------------------
вставляем
---------------------------
if [ ! -e $GETTRAFLOCK ]; then
rsh localhost show ip accounting > $NACCTDOUT
sleep 2;
rsh localhost clear ip accounting
fi
правим gettraf.pl
!!стока 118
удаляем
----------------------------
if (/^\d+\s+\d+\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\d+|client|none)\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\d+|client|none)\s+(\d+)/) {
my $srcip = $1; my $srcport = $2; my $dstip = $3; my $dstport = $4; my $size = $5;
if ($srcport eq "client") { $srcport=1024; }
if ($srcport eq "none") { $srcport=0; }
if ($dstport eq "client") { $srcport=1024; }
if ($dstport eq "none") { $srcport=0; }
----------------------------
вставляем
----------------------------
if (/^\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(\d+)\s+(\d+)\s+(\d+|"-")\s+(\d+|"-")\s+(\d+)\s/) {
my $srcip = $1; my $srcport = $6; my $dstip = $2; my $dstport = $6; my $size = $4;
if ($srcport eq "-") { $srcport=1; }
if ($dstport eq "-") { $srcport=1; }
-----------------------------
вот собственно все