适用于CentOS/REHL/Ubuntu/Debian等,抓出来的包可用Wireshark直接打开分析。

参考文章:

原文的脚本相互调用时,名称有些问题,已修改

1、安装tcpdump

执行(Ubuntu/Debian)

apt-get install tcpdump -y

或(CentOS/RHEL)

yum install tcpdump -y

2、编辑抓包主脚本main_dump.sh(假定脚本都放在/home目录,下同。如不放此路径则需更改相应脚本内容里的路径)

vi /home/main_dump.sh

内容

---------------------------------------------------------------

#!/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 如果你的网卡不是eth0,请替换为实际网卡设备名

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

if [ ! "$DUMPPID" ];then

#diy 请把host后的IP地址替换为需要抓取的源/目标地址;网卡替换为实际设备名;抓取的数据放在/data下,每天独立子目录

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

fi

sleep 1

#diy 如果你的网卡不是eth0,请替换为实际网卡设备名

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

-----------------------------------------------------------------------------

3、编辑抓包监控脚本monitor_dump.sh

vi /home/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 main_dump|grep -v grep`

#diy 如果你的网卡不是eth0,请替换为实际网卡设备名

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

#check main programme status

if [ ! "$MAINDUMP" ];then

/bin/bash /home/main_dump.sh

fi

if [ ! "$DUMPPID" ];then

#diy 请把host后的IP地址替换为需要抓取的源/目标地址;网卡替换为实际设备名

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

fi

-------------------------------------------------------------------------

4、编辑磁盘空间监控脚本monitor_disk.sh

vi /home/monitor_disk.sh

内容

---------------------------------------------------

#!/bin/bash

#script name:/home/monitor_disk.sh

#diy 设备/dev/xvf1是/data所在的磁盘,请替换为你实际的磁盘设备号

FREEDISK=`df -h|grep "/dev/xvdf1"|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 磁盘大于等于占用75%时,删除最早那天的抓包数据,以释放空间

if [ "$FREEDISK" -ge "75" ];then

rm -rf /data/"$HEADMOST"

fi

------------------------------------------------------

5、赋予脚本执行权限

chmod +x /home/main_dump.sh

chmod +x /home/monitor_dump.sh

chmod +x /home/monitor_disk.sh

6、将定时抓包加到crontab服务的任务计划里

vi /etc/crontab

增加(每天6点执行)

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

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

然后执行

crontab /etc/crontab

使计划任务生效

7、如果想现在就开始执行(否则在6点才开始),或者在以后中途重启了系统(抓包会停)想重新开始

可执行

nohup sh /home/monitor_dump.sh &

8、关于TCPDUMP及其配合Wireshark的更多用法,可参考:

Linux系统抓包回放,Linux下24小时持续网络抓包(TCPDUMP)相关推荐

  1. linux设置sfq队列参数,Linux系统运维之Linux高级流量控制工具TC使用方法

    Linux系统运维之Linux高级流量控制工具TC使用方法 本文标签: 运维 流量劫持 Linux系统运维之Linux高级流量控制工具TC使用方法, 在做MHA测试的时候,有一个重要的环节就是测试MH ...

  2. linux系统查看串口占用,Linux 系统串口信息查看

    先确认系统启动的时候串口的信息. ECM_5412@chenfl:~$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 2.511678] ...

  3. Linux系统磁状态检测,检测Linux硬件状态

    计算机系统是由软件系统和硬件系统共同组成的.检测硬件状态对于保障整个系统的稳定是非常重要的.不论操作系统是使用Linux.还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了.这里我们主要 ...

  4. Linux系统-小倒腾之Linux DIY定制裁剪(New kernel+Busybox)o_o(二)

    在前面的<Linux系统-小倒腾之Linux DIY定制裁剪(附带简单网络功能)o_o(一)>博文中,我通过对一个Linux系统的裁剪,最终制作出来了一个带有网络功能的微型Linux系统; ...

  5. linux系统有哪些版本 linux系统哪个版本好用

    l   inux最早由Linus Benedict Torvalds在1991年开始编写.在这之前,RichardStallman创建了Free SoftwareFoundation(FSF)组织以及 ...

  6. linux系统charp命令,操作系统 Linux系统

    Linux操作系统 预备知识(Operating System): 1.GNU项目,GNU项目是一个自由软件项目,旨在建立一个完全自由开放通用的UNIX软件平台. 2.操作系统:管理计算机硬件和软件资 ...

  7. 用u盘装linux系统分区怎么画,linux安装教程,U盘安装Linux详细步骤图解。

    linux是免费开源的系统,经过多年的发展linux在应用方面已经有了很大的提升,很多工作都可以在linux下完成~如果你想要学习linux或是在linux下工作,那么需要把电脑安装成linux,如何 ...

  8. git 的安装以及使用:是一个开源的分布式版本控制系统,可以对项目进行版本管理。 早期是linux之父用来管理linux系统源代码的(linux是和windows一样操作系统 开源免费的操作...

    ## 总结 - 学会使用基本的git命令 管理源代码 - 学会去github创建仓库 并将代码上传到github的仓库 (有待完成 回家有网再push) - 了解本地的.git和服务器github的. ...

  9. 如何查看linux系统的存储空间大小,linux 如何查看硬盘大小,存储空间大小等系统信息及硬件信息...

    一.linux CPU大小 [root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpui ...

最新文章

  1. linux 搭建dns
  2. VC++ 保存数据为音频文件(WAV)学习
  3. 李宏毅线性代数笔记2: 线性方程组和数域
  4. 3月6日 输入与输出 数据类型 运算符
  5. Redis数据库 【总结笔记】
  6. fastjson将json字符串转化为java对象
  7. [Hive]Hive表开启事务
  8. 自动化测试-selenium初始化Driver参考
  9. 【LBS】高德地图、百度地图的经纬度科普|MySQL和编程语言是如何计算两个坐标之间的距离?
  10. I2C总线协议原理介绍
  11. 软件工程造价师好考吗?
  12. 2021起重机作业 (Q)模拟考试题库及软件
  13. 大学生自己做网站如何赚钱
  14. geany中正确运行python方法
  15. 计算机毕业设计ssm基于网络安全维护的机房设备管理19rya系统+程序+源码+lw+远程部署
  16. 微服务中的Spring Cloud和Spring Cloud Alibaba分别有哪些组件和作用,众多组件中如何做技术选型?
  17. 一百个最有用的网站地址
  18. DNS域名解析服务(正向解析)
  19. 计算机视觉小白入门第一问——什么是计算机视觉
  20. [20181015][模拟赛]

热门文章

  1. Yii::app()-request-getParam($name, $defaultValue)
  2. mina 中的IoBufer(一)
  3. 求助:如何在Vista系统环境下增加系统盘C盘的容量?
  4. 呵呵,又在这里开了个博客,现在已经有好几个了
  5. 关于选择哪些村庄试点新农村建设的讨论
  6. c# mvc html.beginform,asp.net-mvc – 使用Html.BeginForm()与自定义路由
  7. Android自定义View的实现方法,带你一步步深入了解View(四)
  8. Struts2中表单与Action传递数据三种方式
  9. TextView图文混排,显示添加的图片,三种常用方法,亲测
  10. 后缀数组--处理字符串的利器