A opção -c pode ajudá-lo com isso:
-c Exit after receiving count packets.
Então, você obteria um arquivo traffic.dmp circular:
while :
do
tcpdump -i eth0 -c 50000 -C 1 -w traffic.dmp
done
Se você a soltar em um loop for, poderá obter uma série de arquivos:
for file in 1 2 3 4 5
do
tcpdump -i eth0 -c 50000 -C 1 -w traffic${file}.dmp
done
Basta ajustar os números depois de descobrir um número que não é grande para o seu disco capturar algumas horas de pacotes.
-C também parece interessante:
-C Before writing a raw packet to a savefile, check whether the
file is currently larger than file_size and, if so, close the
current savefile and open a new one. Savefiles after the first
savefile will have the name specified with the -w flag, with a
number after it, starting at 1 and continuing upward. The units
of file_size are millions of bytes (1,000,000 bytes, not
1,048,576 bytes).