Разделение wireshark большого размера с помощью разветвителя pcap с помощью bash

У меня есть большие файлы 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 для своей цели или нет? Если да, то почему не работает?

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
165
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Большое спасибо, это очень экономит мое время. факт использования ` " " ` действительно помог мне. Я также исправил свой глупый способ использования 2 циклов for ;) . если кто-то еще читает этот комментарий, я также предлагаю удалить лишние файлы с помощью команды rm и переименовать нужный файл с помощью mv . таким образом было бы проще использовать эти файлы.

A D 22.05.2019 15:58

Другие вопросы по теме