要处理大pcap
文件,通常最好先将其拆分为小块,然后并行处理每个块。我实现了一个简单的shell
脚本来做到这一点:
#!/bin/sh
input_pcap=input.pcap
output_pcap=./pcap/frag.pcap
spilt_size=1000
output_index=1
loop_count=10
exit_flag=0
command() {
echo "$1" "$2" > log"$2"
}
tcpdump -r ${input_pcap} -w ${output_pcap} -C ${spilt_size}
command ${output_pcap}
while :
do
loop_index=0
while test ${loop_index} -lt ${loop_count}
do
if test -e ${output_pcap}${output_index}
then
command ${output_pcap} ${output_index} &
output_index=$((output_index + 1))
loop_index=$((loop_index + 1))
else
exit_flag=1
break
fi
done
wait
if test ${exit_flag} -eq 1
then
exit 0
fi
done
首先,将输入pcap
文件拆分为多个1GB
块。然后启动10
进程来处理数据(在上面的示例中只是简单的输出)。绝对可以自定义它。
文章转载自程序员开发入门,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




