⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mon.sh

📁 Linux Shell 编程
💻 SH
字号:
#!/bin/bash# 是否是测试版V_DEBUG=0# 是否记录日志信息F_DEBUG=0# 监测的网络接口interface=eth1# 重启的时间间隔,秒计START_INTERVAL=5# 监测的时间间隔,秒计INTERVAL=90# 两次检测之间的所接收和传输的包数的最小差值DIFFERENCE=10# 监测和进程名PRGNAME=/tcpwatchwhile true; do   /sbin/ifconfig > .if.tmp   if [ ! -r .save.tmp ]; then      last_in=0;      last_out=0;   else      exec < .save.tmp      read last_in      read last_out   fi   exec < .if.tmp   while read xx; do      ifdevice=`echo $xx | cut -f1 -d' '`      if [ "$interface" = "$ifdevice" ]; then         read xx;         read xx;         read rxx;         read txx;         NowRXtmp=`echo $rxx | cut -f2 -d':'`         NowTXtmp=`echo $txx | cut -f2 -d':'`         NowRXpackets=`echo $NowRXtmp | cut -f1 -d' '`         NowTXpackets=`echo $NowTXtmp | cut -f1 -d' '`         echo $NowRXpackets > .save.tmp         echo $NowTXpackets >> .save.tmp         RXdifference=`expr $NowRXpackets - $last_in`         TXdifference=`expr $NowTXpackets - $last_out`         if [ "$V_DEBUG" -eq "1" ]; then            echo "last in: $last_in, last_out: $last_out"            echo "now receive:$NowRXpackets, and send:$NowTXpackets"            echo "RX difference:$RXdifference, TX difference:$TXdifference"         fi#        if [ "$RXdifference" -lt "$DIFFERENCE" ] || \         if [ "$TXdifference" -lt "$DIFFERENCE" ]; then            /usr/bin/killall $PRGNAME            sleep $START_INTERVAL            $PRGNAME         if [ "$F_DEBUG" -eq "1" ]; then            echo "------------------Program restart----------------" >> /mon.log	    date >> /mon.log            echo "last in: $last_in, last_out: $last_out" >> /mon.log            echo "now receive:$NowRXpackets, and send:$NowTXpackets" >> /mon.log            echo "RX difference:$RXdifference, TX difference:$TXdifference" >> /mon.log         fi	             fi      fi     done   sleep $INTERVALdone

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -