tcpdump抓取报文,并存储到指定大小文件中,一旦达到指定大小,立即退出

 

tcpdump -ennXXSs0 -i any -C 1 -Z root -W 2 -w /usr/admin/config/2.cap

  • - C(大写)表示每当文件达到指定大小时进行重新保存一个新文件,单位是MB(1 000 000 B)
  • - z (小写) 表示下面的新文件也是用root权限来执行的,如果用 - C 时必须配合-Z(大写Z,带root才不会报没权限错误)
  • - w 直接将分组写入文件中
  • - W 限制文件的个数,达到个数后开始从最早的文覆盖

 这是我遇到的一个需求,暂时没有办法破解,一旦达到大小都会重写文件,先记录在此,有更好的方法再补充。

暂时有一种方式

因为我的tcpdump实现是fork一个子进程,用execvp去执行的

所以,可以在父进程中,检测所保存的文件,比如my.pcap,如果my.pcap文件大小达到20M并出现my.pcap1时,杀死此子进程

 

最后解决:

tcpdump -ennXXSs0 -i any -C 20 -W 2 -Z root -w /usr/admin/config/2.cap -z packet_capture.sh

先解释:前面的-ennXXSs0不用介绍,百度一下,随地可见; 

1、-i(interface)  指定要抓取的接口,any就是抓 所有接口

2、-C(

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值