shell 抓包脚本

该脚本用于解决找不到tcpdump和ifconfig的问题,并自动化监控多个网卡的流量,按照指定条件保存抓包文件,并定期清理过期日志。它首先检查保存路径,列出所有网卡或指定网卡,然后终止非当前日期的抓包进程,启动新的抓包任务,同时限制文件大小。最后,脚本会删除指定天数之前的日志文件。
摘要由CSDN通过智能技术生成

#!/bin/bash

. /etc/profile     #解决which tcpdump ifconfig找不到的问题

savapath=XXXXX #保存路径

dayout=XXX #保存多少天的值

maxfilesize= XXX #文件的大小

netnames=$* #传入网口的名称,如果不传入,则默认监视所以网卡,传入模式eth0 eth1

G_captool=`which tcpdump`

G_ifconfig=`which ifconfig`

if [ ! -d $savapath ]; then

mkdir $savapath

fi

if [ -z "$netnames ]; then

#列出所有网卡,屏蔽lo

netlist= `$G_ifconfig | grep -o ^[a-z0-9]* | grep -v lo`

else

netlist=$netnames

fi

dt_str=`date + "F"`

#遍历网卡

for net in $netlist

do

      #查找非今天的抓包进程,全部杀死

       procid=`ps aux | grep $G_captool | grep $ savapath | grep -v $dt_str | grep $net | grep -v grep | awk '{print $2}' | xargs`

         if [ !  -z "$procid"]: then

                kill -9 $procid  >/dev/null

         fi

        #查找今天的抓包进程,能找到则不在抓包,50M一个文件

         procid=`ps aux | grep $G_captool | grep $ savapath | grep  $dt_str | grep $net | grep -v grep | awk '{print $2}' | xargs`

        if [ !  -z "$procid"]: then

          $G_captool  tcp -i  $net -C $maxfilesize -w  $savapath/${net}_`date + "F_%H%M%S"`.cap            &

        fi

done

#删除多少天前的文件

find $savapath -type f  -mtime +$dayout -exec rm -f {} \;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟来了2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值