透明 发表于 2015-1-16 11:31:36

linux教程之linux下使用tcpdump完成24小时主动抓包

对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;
  安装tcpdump
代码以下#yuminstalltcpdump  剧本里有正文#diy的,暗示下一行需自界说修正。
  剧本都放在home目次下;crontab里写:
  **/6***/bin/bash/home/monitor_dump.sh
  **/6***/bin/bash/home/monitor_disk.sh
  依据当磁盘空间的巨细和流量的巨细断定crontab里的工夫距离
  因加了crontab要工夫到才实行,为了如今实行,可实行:nohupsh/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
#scriptname:/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-ieth0"|greppcap|awk{print$2}`

if[!"$DUMPPID"];then
#diy
/usr/sbin/tcpdump-ieth0host113.105.152.180-w/data/$DATE_DIR/$STIME.pcap-s0&
fi

sleep1

#diy
DUMPPID=`ps-ef|grep"tcpdump-ieth0"|greppcap|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}`
sleep1m
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
sleep5
done  monitor_dump.sh(监控抓包剧本)
  为了包管抓包主程序能安康运转,经由过程crontab程序来调剂monitor_dump.sh;
  监控抓包主程序是事一般运转,假如没有运转,则启动它;
代码以下#!/bin/bash
#scriptname:/home/monitor_dump.sh

DATE_DIR=`date+%F`
STIME=`date+%F"@"%H%M%S`
MAINDUMP=`ps-elf|grepmaindump|grep-vgrep`
#diy
DUMPPID=`ps-ef|grep"tcpdump-ieth0"|greppcap`

#checkmainprogrammestatus
if[!"$MAINDUMP"];then
/bin/bash/home/maindump.sh
fi

if[!"$DUMPPID"];then
#diy
/usr/sbin/tcpdump-ieth0host113.105.152.180-w/data/$DATE_DIR/$STIME.pcap-s0&
fi  monitor_disk.sh(监控硬盘空间)
  监控磁盘的余暇空间,当磁盘的利用率年夜于即是30%时(可设置),会主动删除最早一天抓到的地点数据包,以包管磁盘的余暇空间;
代码以下#!/bin/bash
#scriptname:/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-n1`

#checkfreediskstatus
#diy
if["$FREEDISK"-ge"30"];then
rm-rf/data/"$HEADMOST"
fi</p>
给你装的系统里为ubuntu12.04,它已经封装的很臃肿了,但是考虑到你没有很多时间投入其中,所以给你装了它,但是怎么用它提高开发效率,需要你在学习的过程中不断总结;

活着的死人 发表于 2015-1-18 07:48:31

上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.

灵魂腐蚀 发表于 2015-1-23 21:01:25

当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。

山那边是海 发表于 2015-1-31 20:38:08

以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。

第二个灵魂 发表于 2015-2-7 01:10:11

工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。

若相依 发表于 2015-2-19 09:45:07

Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。

老尸 发表于 2015-3-6 14:57:00

其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。

飘飘悠悠 发表于 2015-3-13 03:33:44

如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。

谁可相欹 发表于 2015-3-20 11:52:10

熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:
页: [1]
查看完整版本: linux教程之linux下使用tcpdump完成24小时主动抓包