Сенкс.. толко ipcad умеет тоже самое... и вывод результатов в этой же форме предусмотрен... но за идею спасибо - руки у меня всетаки кривые - надо было РИДМИ почитать - там вот следующее было написано:
ipacctd.tgz - демон для акаунтинга трафика, использует tee или divert
socket для получения ip пакетов. Опции команднойй строки:
-t использовать tee а не divert сокет (divert - по умолчанию)
-s создавать UNIX stream socket /tmp/ipacct/ipacct.<port>,
который можно использовать для получения статистики вместо
посылки SIGHUP (см. ниже)
-c cisco-like формат вывода акаунтинга. В этом случае колонки
packets и bytes поменяны местами и перед ip_src стоит пробел.
-v расширенный режим статистики (выводится ip протокол и
порты для TCP/UDP/ICMP)
-w последним полем выводится время в формате time_t когда
был записан первый пакет
-m recs максимальное число записей в хэше (по умолчанию - 30000).
Под записью понимается уникальное сочетание ip_src/ip_dst
для обычного режима и ip_src/ip_dst/s_port/d_port/ip_proto
для расширенного режима. Наличие этой опции предотвращает
DoS атаки.
-b size размер буферов сокета. При больших pps рекомендуется
выставлять по максимуму (равный kern.ipc.maxsockbuf). Можно
так же пробовать увеличить сам kern.ipc.maxsockbuf.
-d не становиться демоном (в основном для отладки)
-p port номер порта из divert/tee правила
-f file имя файла для записи статистики, по умолчанию -
/var/log/ipacct.номер_порта. В имени файла могут быть
использованы символы форматирования strftime(3).
-r file имя pid-файла. По умолчанию - /var/run/ipacctd.номер_порта
-h,? ввывести список поддердиваемых опций
-V вывести версию
По sighup демон записывает в файл статистику в виде
ip_from ip_to bytes packets [when_time] (обычный режим)
ip_from s_port ip_to d_port proto bytes packets [when_time] (расширенный режим)
Для ICMP s_port - это ICMP type, d_port - ICMP sub-code
Также обрабатывается sigusr2. По этому сигналу демон записывает текущую
статистику и служебную информацию в /var/tmp/ipacctd_dump
Пример использования:
сначала добавить в ipfw правило типа
add 2000 divert 10000 ip from any to any via ed*
И потом
ipacctd -v -p 10000 -f /var/log/ipacct.%v_%T
По sighup статистика по ip, прошедшем через ed интерфейсы, добавляется в
указанный файл.
НОВЫЙ КЛЮЧ -s
-------------
Начиная версии 1.43, появился ключ -s, позволяющий получать статистику
с помощью обычной команды cat /tmp/ipacct/ipacct.<port>. История его
появления такова: в оригинальной версии существовала проблема - нельзя
было определить, когда демон полностью записал статистику в файл. Было
предложено несколько методов решения данной проблемы, но все они скорее
только запутывали конструкцию чем упрощали ситуацию. Теперь возможно
получение статистики в синхронном режиме с помощью простой команды
cat. SIGHUP при этом обрабатывается по дефолту. Единственный побочный
эффект - раньше демон по SIGTERM (например, при выключении системы),
добавлял имеющуюся статистику в save file. При наличии ключа -s это
соотв. невозможно. Рекомендуемый workaround - добавить команду по
сохранению трафика в rc.shutdown.
С вопросами/предложениями/осуждениями - mailto: romanp@unshadow.net
($Header: /a/ncvs/romanp/ipacctd/README.ipacctd,v 1.10 2002/10/08 11:14:45 romanp Exp $)
так что вот такая строка запуска:
# /usr/site -vtp 666 -f /var/log/ipacct -r /var/run/ipacctd.pid
# killall -SIGHUP site
# cat /var/log/ipacct
172.16.67.28 138 172.16.67.255 138 udp 229 1
172.16.67.33 138 172.16.67.255 138 udp 229 1
ну и такоя вот вывод... :)))