LINUX.ORG.RU

Изменение вывода


0

0

Буду благодарен за совет - как изменить вывод значения, получаемого при сумме целочисленных значений в bash, то есть существует скрипт, считающий трафик на интерфейсах по заданной дате. Информация по трафику берется из базы файлов (статистика iptables) типа этого:

Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.4 407943
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.5 376
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.6 336
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.7 8983
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.8 1795042
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.9 664
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.10 336
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.11 1206534
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.12 432
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.13 376
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.14 16360
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.15 336
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.16 480
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.17 26724
Sun, 27 Feb 2005 10:55:01 +0500 x.x.x.18 336

скрипт работает следующим образом

./day_xls 01 01 2005
Accounting...
eth1: 453367251 bite
eth2: 5903913 bite
Traffic of the day 01-01-2005 is 459271164 bite
Done.

но в случае трафика на одной сетевой карте больше 2 Гб получается вот как

./day_xls 26 02 2005
Accounting...
eth1: 2.18537e+09 bite <--- как изменить вывод пригодный для обычного суммирования ?
eth2: 255297843 bite
./day_xls: line 42: 2.18537e+09+255297843: syntax error in expression (error token is ".18537e+09+255297843")
Traffic of the day 26-02-2005 is bite
Done.

суммирование в скрипте производится при помощи awk.



★★★

> суммирование в скрипте производится при помощи awk

Это уже проблемы awk. Он использует 32-битное знаковое целое, а дальше - числа с плавающей точкой. Так что, целые больше 2Г просто не влазят.

P.S. Байт по-английски пишется byte!

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от octy

да, все верно

./day_xls 26 02 2005
Accounting...
eth1: 2185370000 byte
eth2: 255297843 byte
Traffic of the day 26-02-2005 is 2440667843 byte
Done.

спасибо :)

x97Rang ★★★
() автор топика
Ответ на: комментарий от x97Rang

Ну только, как вы понимаете, будут ошибки округления :) И поскольку байтов много правильно всё-таки bytes ;)

octy ★★
()
Ответ на: комментарий от octy

сегогдня день работы над ошибками ;) в вузе учил немецкий, ладно хоть скрипт кроме меня никто не использует :)
а насчет округлений - несколькими Мб можно и пожертвовать...

x97Rang ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.