How can I have tcpdump write to file and standard output the appropriate data?

user2565010 picture user2565010 · Sep 1, 2014 · Viewed 102k times · Source

I want to have tcpdump write raw packet data into a file and display packet analysis in standard output as the packets are captured (by analysis I mean the lines it displays normally when -w is missing). Can anybody please tell me how to do that?

Answer

cnicutar picture cnicutar · Sep 1, 2014

Here's a neat way to do what you want:

tcpdump -w - | tee somefile | tcpdump -r -

What it does:

  • -w - tells tcpdump to write binary data to stdout
  • tee writes that binary data to a file AND to its own stdout
  • -r - tells the second tcpdump to get its data from its stdin