欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


OFFICE2010繁复性简洁方法
Linux如何扩展XFS文件系统?
Linux系统如何对网站数据定期自动备份与删除?
Ubuntu 14.10何时使用更新Linux内核3.16.4
如何让WinRAR启动到自定义的文件夹
如何在线使用Office?
CentOS 7下怎么搭建高可用集群?
如何利用WinRAR快速提取成批文件
方正飞腾排版软件快捷键大全
百度卫士2.0体验版测评
linux下利用tcpdump实现24小时自动抓包
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   安装tcpdump

 代码如下  
# yum install tcpdump

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

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

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

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

  根据当磁盘空间的大小和流量的大小确定crontab里的时间间隔

  因加了crontab要时间到才执行,为了现在执行,可执行:nohup sh /home/monitor_dump.sh &

  vi常用命令

  # vi /etc/crontab

  insert进入编辑状态

  ESC进入命令状态

  :wq保存退出

  :q退出

  修改后要执行 crontab /etc/crontab

  main_dump.sh (抓包的主程序)

  每隔1分钟通过死循环检测,让程序不断的去抓包;考虑到抓包的结果可能太大分析工具无法打开分析,所以每个数据包大小限制约为100M;

  并设定了前一个包抓完,间隔5秒,开始进行下一轮抓包;

  每天的数据包放在/data下以日期命名的目录如:/data/2010-03-08,并进行压缩存储,包的命令格式为:yyyy-mm-dd@hhmmss-hhmmss.pcap.gz;其中yyyy-mm-dd表示日期,第一个hhmmss表示开始抓包的时分秒,第二个hhmmss表示抓包结束的时分秒。

 代码如下  
#!/bin/bash
#script name:/home/main_dump.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

    #diy #unit:byte;100MB
    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

  monitor_dump.sh (监控抓包脚本)

  为了保证抓包主程序能健康运行,通过crontab程序来调度monitor_dump.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

  monitor_disk.sh(监控硬盘空间)

  监控磁盘的空闲空间,当磁盘的使用率大于等于30%时(可设置),会自动删除最早一天抓到的所在数据包,以保证磁盘的空闲空间;

 代码如下  
#!/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

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站