hinzufügen Gesamtanzahl der Bytes in iptables
Frage
Wie kann ich grep Ausgangsnummer Zeile für Zeile hinzufügen.
Ich habe die unten Ausgabedatei
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
Ich möchte alle Bytes für jede IP-Adresse hinzuzufügen, und speichern Sie es als Variable für die weitere Berechnung.
iptables -L RRDIPT -vnx -t filter | grep "192.168.1" | cut -d " " -f4
gibt mir die Rohlinge und 19581223,1043650417,9348 und 9196, aber ich kämpfen, um den Ausgang hinzuzufügen.
Kann mir jemand anleitet?
Lösung
Die folgenden Skript Zählungen auf die Byte-Anzahl pro Ziel-IP . Wenn Sie pro wollen Quell-IP ändern Sie dann die $9
zu $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
Output
192.168.0.1 Total bytes: 3
0.0.0.0/0 Total bytes: 14
192.168.1.117 Total bytes: 11
Andere Tipps
awk
wird kurz machen Arbeit davon.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow