извлеките 5 лучших потоков TCP или UDP из tshark, отсортированных по убыванию по общему количеству байтов
Как указано в заголовке вопроса, учитывая захват пакета, я хочу извлечь 5 основных потоков для TCP (или UDP), отсортированных по общему количеству байтов в порядке убывания.
Я придумал это до сих пор
tshark -r test.pcap -q -z conv,tcp | sed "1,5d" | head -n -1 | sort -r -k5 | head -n 5
The sed
и команды заключаются в удалении первых 5 строк и последней строки с последующей сортировкой столбца 5 и усечением вывода до 5 верхних строк, используяhead
снова.
Пример вывода команды tshark выглядит следующим образом (строки заголовков и последняя строка удалены):
10.215.173.1:49248 <-> 49.44.185.78:443 84 312 kB 78 10 kB 162 323 kB 215.775760000 12.0809
10.215.173.1:49212 <-> 49.44.185.78:443 83 312 kB 76 10 kB 159 322 kB 215.740042000 12.1151
10.215.173.1:49302 <-> 49.44.185.78:443 79 211 kB 80 9876 bytes 159 221 kB 215.811485000 12.0465
10.215.173.1:49242 <-> 49.44.185.78:443 82 312 kB 76 10 kB 158 322 kB 215.771412000 12.0851
10.215.173.1:49134 <-> 49.44.185.78:443 80 311 kB 76 10 kB 156 322 kB 215.647900000 12.2038
10.215.173.1:49202 <-> 49.44.185.78:443 83 312 kB 73 10 kB 156 322 kB 215.728497000 12.1263
10.215.173.1:49290 <-> 49.44.185.78:443 77 211 kB 78 9700 bytes 155 221 kB 215.803830000 12.0538
10.215.173.1:49278 <-> 49.44.185.78:443 77 211 kB 77 9612 bytes 154 221 kB 215.797622000 7.7149
10.215.173.1:49342 <-> 49.44.185.78:443 74 211 kB 75 9436 bytes 149 220 kB 215.866905000 11.9925
10.215.173.1:49360 <-> 49.44.185.78:443 73 211 kB 74 9348 bytes 147 220 kB 215.895946000 11.9642
Столбцы по порядку:Source ip:port
Destination ip:port
Incoming Packets:Bytes
Outgoing Packets:Bytes
Total Packets:Bytes
Relative start
Duration of flow
Я думаю, вы можете увидеть здесь проблему: некоторые значения находятся в байтах, а другие - в байтах, поскольку сортировка работает только с числовыми значениями, результат будет неправильным. И даже если бы все значения находились вsort
кажется, дает неправильный результат, то есть я использую его неправильно.
Как мне преобразовать все соответствующиеbytes
значения, связанные со столбцом, дляkB
а затем правильно отсортировать вывод?
Любой другой альтернативный подход с использованиемtshark
также принимается.