Linux系统抓包回放,Linux下24小时持续网络抓包(TCPDUMP)
适用于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)相关推荐
- linux设置sfq队列参数,Linux系统运维之Linux高级流量控制工具TC使用方法
Linux系统运维之Linux高级流量控制工具TC使用方法 本文标签: 运维 流量劫持 Linux系统运维之Linux高级流量控制工具TC使用方法, 在做MHA测试的时候,有一个重要的环节就是测试MH ...
- linux系统查看串口占用,Linux 系统串口信息查看
先确认系统启动的时候串口的信息. ECM_5412@chenfl:~$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 2.511678] ...
- Linux系统磁状态检测,检测Linux硬件状态
计算机系统是由软件系统和硬件系统共同组成的.检测硬件状态对于保障整个系统的稳定是非常重要的.不论操作系统是使用Linux.还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了.这里我们主要 ...
- Linux系统-小倒腾之Linux DIY定制裁剪(New kernel+Busybox)o_o(二)
在前面的<Linux系统-小倒腾之Linux DIY定制裁剪(附带简单网络功能)o_o(一)>博文中,我通过对一个Linux系统的裁剪,最终制作出来了一个带有网络功能的微型Linux系统; ...
- linux系统有哪些版本 linux系统哪个版本好用
l inux最早由Linus Benedict Torvalds在1991年开始编写.在这之前,RichardStallman创建了Free SoftwareFoundation(FSF)组织以及 ...
- linux系统charp命令,操作系统 Linux系统
Linux操作系统 预备知识(Operating System): 1.GNU项目,GNU项目是一个自由软件项目,旨在建立一个完全自由开放通用的UNIX软件平台. 2.操作系统:管理计算机硬件和软件资 ...
- 用u盘装linux系统分区怎么画,linux安装教程,U盘安装Linux详细步骤图解。
linux是免费开源的系统,经过多年的发展linux在应用方面已经有了很大的提升,很多工作都可以在linux下完成~如果你想要学习linux或是在linux下工作,那么需要把电脑安装成linux,如何 ...
- git 的安装以及使用:是一个开源的分布式版本控制系统,可以对项目进行版本管理。 早期是linux之父用来管理linux系统源代码的(linux是和windows一样操作系统 开源免费的操作...
## 总结 - 学会使用基本的git命令 管理源代码 - 学会去github创建仓库 并将代码上传到github的仓库 (有待完成 回家有网再push) - 了解本地的.git和服务器github的. ...
- 如何查看linux系统的存储空间大小,linux 如何查看硬盘大小,存储空间大小等系统信息及硬件信息...
一.linux CPU大小 [root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpui ...
最新文章
- linux 搭建dns
- VC++ 保存数据为音频文件(WAV)学习
- 李宏毅线性代数笔记2: 线性方程组和数域
- 3月6日 输入与输出 数据类型 运算符
- Redis数据库 【总结笔记】
- fastjson将json字符串转化为java对象
- [Hive]Hive表开启事务
- 自动化测试-selenium初始化Driver参考
- 【LBS】高德地图、百度地图的经纬度科普|MySQL和编程语言是如何计算两个坐标之间的距离?
- I2C总线协议原理介绍
- 软件工程造价师好考吗?
- 2021起重机作业 (Q)模拟考试题库及软件
- 大学生自己做网站如何赚钱
- geany中正确运行python方法
- 计算机毕业设计ssm基于网络安全维护的机房设备管理19rya系统+程序+源码+lw+远程部署
- 微服务中的Spring Cloud和Spring Cloud Alibaba分别有哪些组件和作用,众多组件中如何做技术选型?
- 一百个最有用的网站地址
- DNS域名解析服务(正向解析)
- 计算机视觉小白入门第一问——什么是计算机视觉
- [20181015][模拟赛]
热门文章
- Yii::app()-request-getParam($name, $defaultValue)
- mina 中的IoBufer(一)
- 求助:如何在Vista系统环境下增加系统盘C盘的容量?
- 呵呵,又在这里开了个博客,现在已经有好几个了
- 关于选择哪些村庄试点新农村建设的讨论
- c# mvc html.beginform,asp.net-mvc – 使用Html.BeginForm()与自定义路由
- Android自定义View的实现方法,带你一步步深入了解View(四)
- Struts2中表单与Action传递数据三种方式
- TextView图文混排,显示添加的图片,三种常用方法,亲测
- 后缀数组--处理字符串的利器