Loading... <div class="tip share">请注意,本文编写于 1782 天前,最后修改于 1782 天前,其中某些信息可能已经过时。</div> ``` #对于不定期出现的网络流量异常进行合理抓包 file=/proc/net/dev i=0 #用来标记是否出现了流量异常以及异常持续了几个检测周期 cd /backup/tmp/ #alias capture='tcpdump -nnvv port 3306 -w tcpdump.pacpng &>/dev/null' alias capture='tcpdump -nnvv port 3306 and src host 172.16.5.81 -w tcpdump.pacpng &>/dev/null' (capture) & #放到后台执行 while true;do TX_bytes=`cat $file|grep eth0|sed 's/^ *//g'|awk -F'[ :]+' '{print $10}'` sleep 10 #间隔10s TX_bytes_later=`cat $file|grep eth0|sed 's/^ *//g'|awk -F'[ :]+' '{print $10}'` speed_TX=`echo "scale=0;($TX_bytes_later - $TX_bytes)*8/1024/1024/10"|bc` #计算上行带宽 tcpdump_pid=`ps -ef|grep tcpdump|grep -v grep|awk '{print $2}'` if [ $speed_TX -lt 20 ];then echo `date +"%F_%H:%M:%S"` 当前带宽未超过阈值,停止当前周期抓包,当前带宽为 $speed_TX Mbps >> /tmp/tcpdump.log #kill -9 $tcpdump_pid &>/dev/null killall tcpdump if [ $i -gt 0 ];then mv tcpdump.pacpng "$i"_tcpdump_`date +"%F_%H:%M:%S"` echo `date +"%F_%H:%M:%S"` 之前"$i"个周期标记大于1,保存抓包文件 >>/tmp/tcpdump.log fi echo `date +"%F_%H:%M:%S"` 开始新周期的抓包,并置状态为0 >>/tmp/tcpdump.log (capture) & i=0 else i=$(($i+1)) echo `date +"%F_%H:%M:%S"` 带宽超过阈值,标记+1,当前带宽为 $speed_TX Mbps >>/tmp/tcpdump.log fi done ``` 最后修改:2020 年 02 月 04 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏