Tcpdump指定时间或者指定大小进行循环抓取报文

背景:我们用tcpdump工具循环抓取网卡上的报文,我们会遇到如下情况:

1. 抓取报文后隔指定的时间保存一次;

2. 抓取报文后达到指定的大小保存一次;

本文就这两种情况给出tcpdump的使用方法

 tcpdump -x udp port 6789 -i em2 -nn--------------------------------------->可输出从em2 网卡上的详细的数据包

 -nn--------------------------------------> 可输出相应源IP地址到目的IP地址详细信息

tcpdump -X udp port 6789  -nn--------------------------------------------->可输出从端口6789的详细数据包,

1. 抓取报文后隔指定的时间保存一次:

tcpdump -i eth3 -s0 -G 60 -Z root -w %Y_%m%d_%H%M_%S.pcap

这里解释下-G选项 后面接时间 单位为秒 本例中的时间为60秒

 

 

2. 抓取报文后达到指定的大小保存一次;

tcpdump -i eth3 -s0 -C 1 -Z root -w jiangsuyinhang.pcap

setsid tcpdump udp port 6789 -s0 -C 1 -Z root -w udp_port_listener.pcap &==========>>后台启动监听端口6789-->udp数据包

-i 指定网卡名称

这里的-s0 表示每个报文的大小是接收到的指定大小,如果没有这个选项,则超过比如1500字节的报文,就会被切除1500字节以外的部分

-C(小写) 表示每当文件达到指定大小时进行重新保存一个新文件,单位是MB

-Z(小写) 表示下面的新文件也是用root权限来执行的,如果用-c时必须配合-Z(大写z).

-w(小写) 后面跟具体的文件名称

注意:这个命令行保存下来的文件名是jiangsuyinhang.pcap jiangsuyinhang.pcap0 jiangsuyinhang.pcap1……jiangsuyinhang.pcapN

截图如下: