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
截图如下: