您的位置 首页 FPGA

linux tcpdump脚本完成24小时主动抓包

#说明—————maindump.sh (抓包的主程序)每隔1分钟通过死循环检测,让程序不断的去抓包;考虑到抓包的结果可能太大分析工具无法打开分析,所以每个

#阐明—————

maindump.sh (抓包的主程序)

每隔1分钟经过死循环检测,让程序不断的去抓包;考虑到抓包的成果或许太大剖析东西无法翻开剖析,所以每个数据包巨细约束约为100M;

并设定了前一个包抓完,距离5秒,开端进行下一轮抓包;

每天的数据包放在/data下以日期命名的目录如:/data/2010-03-08,并进行紧缩存储,包的指令格局为:yyyy-mm-dd@hhmmss-hhmmss.pcap.gz;其间yyyy-mm-dd表明日期,第一个hhmmss表明开端抓包的时分秒,第二个hhmmss表明抓包完毕的时分秒。

monitor_dump.sh (监控抓包脚本),monitor_disk.sh(监控硬盘空间)

为了确保抓包主程序能健康运转,经过crond程序来调度monitor.sh;

监控抓包主程序是事正常运转,假如没有运转,则发动它;

监控磁盘的闲暇空间,当磁盘的使用率大于等于30%时(可设置),会主动删去最早一天抓到的地点数据包,以确保磁盘的闲暇空间;

脚本里有注释#diy的,表明下一行需自定义修正。

脚本都放在home目录下;crontab里写:

* */6 * * * /bin/bash /home/monitor.sh

* */6 * * * /bin/bash /home/monitor_disk.sh

依据当磁盘空间的巨细和流量的巨细确认crontab里的时刻距离。因加了crontab要时刻到才履行,为了现在履行,可履行:nohup sh /home/monitor.sh

#阐明完毕————–

————————————————————

#!/bin/bash

#script name:/home/monitor_dump.sh

DATE_DIR=`date +%F`

STIME=`date +%F@%H%M%S`

MAINDUMP=`ps -elf|grep maindump|grep -v grep`

#diy

DUMPPID=`ps -ef|grep tcpdump -i eth0|grep pcap`

#check main programme status

if [ ! $MAINDUMP ];then

/bin/bash /home/maindump.sh

fi

if [ ! $DUMPPID ];then

#diy

/usr/sbin/tcpdump -i eth0 host 113.105.152.180 -w /data/$DATE_DIR/$STIME.pcap -s 0

fi

———————————————————–

#!/bin/bash

#script name:/home/monitor_disk.sh

#diy

FREEDISK=`df -h|grep /dev/sda3|awk ‘{print $5}’|awk -F % ‘{print $1}’`

HEADMOST=`ls -l /data|grep ^d|awk ‘{print $NF}’|sort|head -n 1`

#check free disk status

#diy

if [ $FREEDISK -ge 30 ];then

rm -rf /data/$HEADMOST

fi

————————————————————

#!/bin/bash

#script name:/home/maindump.sh

while :

do

STIME=`date +%F@%H%M%S`

DATE_DIR=`date +%F`

if [ ! -d /data/$DATE_DIR ];then

mkdir -p /data/$DATE_DIR

fi

#unit:byte;100MB

#diy

MAXSIZE=100000000

#diy

DUMPPID=`ps -ef|grep tcpdump -i eth0|grep pcap|awk ‘{print $2}’`

if [ ! $DUMPPID ];then

#diy

/usr/sbin/tcpdump -i eth0 host 113.105.152.180 -w /data/$DATE_DIR/$STIME.pcap -s 0

fi

sleep 1

#diy

DUMPPID=`ps -ef|grep tcpdump -i eth0|grep pcap|awk ‘{print $2}’`

PACKSIZE=`ls -l /data/$DATE_DIR|grep $STIME.pcap|awk ‘{print $5}’`

while [ $PACKSIZE -lt $MAXSIZE ];do

PACKSIZE=`ls -l /data/$DATE_DIR|grep $STIME.pcap|awk ‘{print $5}’`

sleep 1m

done

kill -9 $DUMPPID

ETIME=`date +%H%M%S`

mv /data/$DATE_DIR/$STIME.pcap /data/$DATE_DIR/$STIME-$ETIME.pcap

gzip /data/$DATE_DIR/*.pcap

sleep 5

done

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/297617.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部