добавить общее количество байтов в iptables - PullRequest
1 голос
/ 12 января 2011

как я могу добавить выходной номер grep построчно.

У меня есть выходной файл ниже

     pkts      bytes target     prot opt in     out     source               destination
       0        0 RETURN     0    --  *      *       0.0.0.0/0            192.168.1.117
       0        0 RETURN     0    --  *      *       192.168.0.1          0.0.0.0/0
       0        0 RETURN     0    --  *      *       0.0.0.0/0            192.168.0.1
  375993 19581223 RETURN     0    --  *      *       192.168.1.136        0.0.0.0/0
  752537 1043650417 RETURN     0    --  *      *       0.0.0.0/0            192.168.1.136
     123     9348 RETURN     0    --  *      *       192.168.1.100        0.0.0.0/0
     121     9196 RETURN     0    --  *      *       0.0.0.0/0            192.168.1.100

Я хочу добавить все байты для каждого IP-адреса и сохранить его как переменную для дальнейшего расчета.

iptables -L RRDIPT -vnx -t filter | grep "192.168.1" | cut -d " " -f4

дает мне пробелы и 19581223,1043650417,9348 и 9196, но я изо всех сил пытаюсь добавить вывод.

Кто-нибудь может направить меня?

Ответы [ 2 ]

5 голосов
/ 12 января 2011

Следующий скрипт подсчитывает количество байтов на IP-адрес назначения . Если вы хотите для исходного IP , тогда измените $9 на $8

iptables -L ... | awk '!/destination/{a[$9]+=$2}END{for(item in a)printf("%s\tTotal bytes: %s\n",item,a[item])}'

Input

pkts      bytes target     prot opt in     out     source               destination
   0        1 RETURN     0    --  *      *       0.0.0.0/0            192.168.1.117
   0        2 RETURN     0    --  *      *       192.168.0.1          0.0.0.0/0
   0        3 RETURN     0    --  *      *       0.0.0.0/0            192.168.0.1
   0        4 RETURN     0    --  *      *       0.0.0.0/0            192.168.1.117
   0        5 RETURN     0    --  *      *       192.168.0.1          0.0.0.0/0
   0        6 RETURN     0    --  *      *       0.0.0.0/0            192.168.1.117
   0        7 RETURN     0    --  *      *       192.168.0.1          0.0.0.0/0

выход

192.168.0.1     Total bytes: 3
0.0.0.0/0       Total bytes: 14
192.168.1.117   Total bytes: 11
0 голосов
/ 12 января 2011

awk сделает короткую работу по этому.

...