I am attempting to send multiple pcaps into an xargs loop in order to tcpdump them into a single file.
O tcpdump não suporta a fusão de arquivos pcap.
o mergecap faz isso, mas se você não quiser usá-lo porque ele usa muita CPU, e se
- os arquivos têm o mesmo tipo de cabeçalho da camada de link (por exemplo, Ethernet) e o mesmo comprimento de instantâneo;
- você só quer concatenar os arquivos, porque o arquivo N + 1'st tem pacotes que vêm depois dos pacotes no enésimo arquivo, para todos os valores de N;
você precisará tentar algo semelhante à solução na seção "Exemplos de manipulação de cabeçalho" do artigo que encontrou. Esse exemplo significa que você deve tratar o primeiro arquivo sendo concatenado de forma diferente de todos os outros arquivos, já que você estará removendo o cabeçalho do arquivo de todos os outros arquivos, mas não do primeiro arquivo.
Aqui está um script que deve fazer isso:
#! /bin/sh
first_file=yes
for i in class_all_1447887*
do
if [ "$first_file" = "no" ]
then
#
# Strip off file header from tcpdump's output.
#
tcpdump -r "$i" -w - "src 127.1.0.1" | \
(dd of=/dev/null bs=24 count=1; cat)
else
tcpdump -r "$i" -w - "src 127.1.0.1"
first_file=no
fi
done > test.cap