Расщепление проволочной акулы большого размера с разветвителем pcap с bash - PullRequest
0 голосов
/ 22 мая 2019

У меня есть большие файлы pcapng, и я хочу разделить их на основе желаемых фильтров Wireshark.Я хочу разделить мои файлы с помощью скриптов bash и с помощью pcapsplitter , но когда я использую цикл, он всегда дает мне один и тот же файл.

Я написал небольшой код.


#!/bin/bash

for i in {57201..57206}
do
mkdir destination/$i
done

tcp="tcp port "

for i in {57201..57206}
do
tcp="$tcp$i"
pcapsplitter -f file.pcapng -o destination/$i -m bpf-filter -p $tcp
done

вопрос в том, могу ли я использовать bash для своей цели или нет?Если да, то почему это не работает?

1 Ответ

1 голос
/ 22 мая 2019

Определенно, это то, что может сделать Баш.

Что касается вашего сценария, первое, что я могу вспомнить, это строка:

pcapsplitter -f file.pcapng -o destination/$i -m bpf-filter -p $tcp

где значение $tcp на самом деле tcp port 57201 (и следующие числа в следующих раундах. Однако без кавычек вы фактически передаете tcp только параметру -p.

Это должно работать лучше после того, как вы изменили эту строку на:

pcapsplitter -f file.pcapng -o destination/$i -m bpf-filter -p "$tcp"

NB. В качестве общего совета обычно безопаснее использовать двойные кавычки в Bash.

NB2: вам не нужны эти 2 for петли. Вот как я бы переписал ваш скрипт:

#!/bin/bash

for portNumber in {57201..57206}; do
    destinationDirectory="destination/$portNumber"
    mkdir "$destinationDirectory"

    thePparameter="tcp port $portNumber"
    pcapsplitter -f 'file.pcapng' -o "$destinationDirectory" -m bpf-filter -p "$thePparameter"
done
...