使用 bash 使用 pcap 拆分器拆分 wireshark 大尺寸
Splitting wireshark large size with pcap splitter with 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 作为我的目标吗?
如果是,为什么它不起作用?
当然,这是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"
注意:作为一般建议,在 Bash.
中使用 double-quote 变量通常更安全
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
我有很大的 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 作为我的目标吗? 如果是,为什么它不起作用?
当然,这是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"
注意:作为一般建议,在 Bash.
中使用 double-quote 变量通常更安全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