AWK : petit caprice de formatage
Bonjour,
Dans le cadre d'une surveillance de serveur, je relève le trafic réseau sur des protocoles donnés (paquets marqués avec iptables).
La surveillance étant faite avec Ganglia (contrainte projet), je dois lire régulièrement mes compteurs absolus dans iptables pour alimenter ma métrique :
Code:
/sbin/iptables -t mangle -L OUTPUT -v -n -x | sed 1,2d | grep 'MARK set 0x1'
Jusque là, pas de soucis :
Code:
1 2
| 8088039 5194390582 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1352 MARK set 0x1
5020292 1613634853 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:1352 MARK set 0x1 |
Là où ça se corse, c'est qu'il me faut faire la somme de la deuxième colonne.
Naturellement, j'ai pipé tout ça avec
Code:
awk '{ sum+=$2;} END {printf "%d\n",sum}'
Tout roule quand je suis sur mon environnement de test (avec 3 octets et demi par secondes :roll:) mais en prod, mes métriques sautent car passé un certain step awk me propose une sortie en notation scientifique (6.80808e+09) que Ganglia interprète comme une string et donc pas comme un uint...
Ma question donc : peut-on inhiber ce comportement ? Avez-vous une autre idée pour faire cette addition qu'un programme C spécifique ?
Merci d'avance.
@+