FreeBSD 6.0, flow-tools-0.68_6Фловы с циски складываются в /var/netflow/, формат файла: ft-v05.2008-05-15.120501+0400
Если посчитать трафик по дням, и сложить, то результат будет отличаться, от посчитанного за месяц (сумма суточных трафиков больше сквозного за месяц).
Причём если find использовать без ключа -s, то данные на flow-cat идут не вполне сортированные и в результате вообще неучитывается половина трафика.for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ;do
find -s /var/netflow/ -type f -name ft-v05.2008-04-$i* -exec flow-cat {} + |flow-nfilter -F$filter |flow-stat -f15
donefind -s /var/netflow/ -type f -name ft-v05.2008-04-* -exec flow-cat {} + |flow-nfilter -F$filter |flow-stat -f15
В чём может быть засада?
Видите-ли, в мае 31 день. Это один из вариантов.
>Видите-ли, в мае 31 день. Это один из вариантов.Хотя если это за текущий год, то проверьте список файлов уходящих на flow-cat
>>Видите-ли, в мае 31 день. Это один из вариантов.
>
>Хотя если это за текущий год, то проверьте список файлов уходящих на
>flow-catНу в общем то ft-v05.2008-04-* Это файлы за апрель
>>>Видите-ли, в мае 31 день. Это один из вариантов.
>>
>>Хотя если это за текущий год, то проверьте список файлов уходящих на
>>flow-cat
>
>Ну в общем то ft-v05.2008-04-* Это файлы за апрельАга, не туда глянул.
Список одинаковый?
for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do find ./ -type f -name ft*2008-04-$i* >> res1; donefind ./ -type f -name ft*2008-04* > res2
diff res1 res2
>[оверквотинг удален]
>>
>>Ну в общем то ft-v05.2008-04-* Это файлы за апрель
>
>Ага, не туда глянул.
>Список одинаковый?
>for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do find ./ -type f -name ft*2008-04-$i* >> res1; done
>
>find ./ -type f -name ft*2008-04* > res2
>
>diff res1 res2Спасибо, дельно придумали.
Хотя файлы полностью индентичны. А по результатам flow-cat по суммам 180Гб, а месячный 110Гб.
>[оверквотинг удален]
>>Список одинаковый?
>>for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do find ./ -type f -name ft*2008-04-$i* >> res1; done
>>
>>find ./ -type f -name ft*2008-04* > res2
>>
>>diff res1 res2
>
>Спасибо, дельно придумали.
>Хотя файлы полностью индентичны. А по результатам flow-cat по суммам 180Гб, а
>месячный 110Гб.Можно вообще отказать от find'a, благо flow-cat сам не плохо файлы перебирает:
1. flow-cat ./2008-04* | flow-stat -f15
2.
for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do
if [ -x 2008-04-$i ]; then
flow-cat 2008-04-$i/* | flow-stat -f15 | grep -v '\#'
fi
doneу меня результат совпал с разницев в 3 Мегабайта.
>[оверквотинг удален]
>09 10 11 12 13 14 15 16 17 18 19
>20 21 22 23 24 25 26 27 28 29 30;
>do
> if [ -x 2008-04-$i ]; then
> flow-cat 2008-04-$i/* | flow-stat -f15 | grep
>-v '\#'
> fi
>done
>
>у меня результат совпал с разницев в 3 Мегабайта.От find отказаться проблематично, так-как слишком длинная строка аргументов получается.
Попробую реализовать через собственный механизм в flow-cat:
/usr/local/bin/flow-cat -t "03/31/2008 23:44:59" -T "05/01/2008 00:30:00" /var/netflow/
>[оверквотинг удален]
>> flow-cat 2008-04-$i/* | flow-stat -f15 | grep
>>-v '\#'
>> fi
>>done
>>
>>у меня результат совпал с разницев в 3 Мегабайта.
>
>От find отказаться проблематично, так-как слишком длинная строка аргументов получается.
>Попробую реализовать через собственный механизм в flow-cat:
>/usr/local/bin/flow-cat -t "03/31/2008 23:44:59" -T "05/01/2008 00:30:00" /var/netflow/А стоит-ли извлекать данные по времени? Всё одно в биллинге сойдётся.
Но в любом случае - удачи =)