Resposta # 1
Qual é o seu iptables --version
?
No meu, iptables -vL
converte automaticamente os bytes em Kbytes (sufixo K) ou Mbytes (sufixo M).
Resposta # 2
Use iptables -x
enviado para sort
, por ex. iptables -xvL $CHAIN | sort -rn -k 2
Answer # 3
Canalize a saída dos comandos acima para um script que fará a inserção do banco de dados.
Você pode filtrar ainda mais a saída da Resposta # 2 usando awk '$1 ~ /[0-9]+/'
para remover os títulos das colunas e awk '$1 > 1000000'
para ver apenas os valores maiores que 1'000'000 bytes.
Processar saída em formato CSV
iptables -xvnL $CHAIN | awk -v min=$MINIMUM '$1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'
Ou, se você precisar do título da coluna CSV:
iptables -xvnL $CHAIN | awk -v min=$MINIMUM 'BEGIN {print "Bytes,MAC"} $1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'