1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/bin/bash
- #Whritted: dufs
- #E-mail: fengshan.du@zznode.com
- #Date: 2016-09-19 13:00
- #ping check
- # ping输出有如下两种结果,有时候会有duplicates输出
- #
- # 10 packets transmitted, 10 received, +1 duplicates, 0% packet loss, time 9001ms rtt min/avg/max/mdev = 0.432/6.303/32.608/12.369 ms
- # 10 packets transmitted, 10 received, 0% packet loss, time 9000ms rtt min/avg/max/mdev = 0.418/0.466/0.500/0.032 ms
- #
- SH_NAME=`basename $0`
- SH_HOME=$HOME/zsjk
- SH_Log=$SH_HOME/log/${0%\.sh*}.log
- function outlog {
- echo "`date '+%Y-%m-%d %T'` : " "$*" >> $SH_Log
- logSize=`ls -lrt $SH_Log|awk '{print $5}'`
- if [ $logSize -gt 10240000 ]
- then
- cp -rp $SH_Log $SH_Log.`date '+%Y-%m-%d'`
- gzip $SH_Log.`date '+%Y-%m-%d'`
- cat /dev/null>$SH_Log
- fi
- }
- outlog =============================================================
- outlog start check
- sysapp="【集中故障】"
- msgTemp=$SH_HOME/conf/sendmsg_temp.sql
- if [ ! -f $msgTemp ]
- then
- outlog can not find $msgTemp, please check !!!
- exit 0
- fi
- ip_list=$SH_HOME/conf/pingChk.conf
- if [ ! -f $ip_list ]
- then
- outlog can not find $ip_list, please check !!!
- exit 0
- fi
- cd $SH_HOME/bin
- for line in `cat $ip_list`
- do
- sharppos=$(echo $line|awk '{print index($1,"#")}')
- if [ $sharppos = 1 ]
- then
- #echo remarked line,ignore
- continue
- fi
- outlog -------------------------------------------------------------
- Local_IP=`echo $line | awk -F"," '{print $1}'`
- outlog read config: Local_IP $Local_IP
- ping $Local_IP -c 10 -s 1024 >$SH_HOME/data/ping.$Local_IP
- outlog `cat $SH_HOME/data/ping.$Local_IP |tail -2`
- dupCnt=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|grep -c duplicates`
- if [ $dupCnt -eq 1 ]
- then
- dupNum=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|awk '{print $6}'||sed 's/\+//g'`
- pkgLos=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|awk '{print $8}'|sed 's/\%//g'`
- else
- pkgLos=`tail -2 $SH_HOME/data/ping.$Local_IP| head -1|awk '{print $6}'|sed 's/\%//g'`
- fi
-
- if [ $pkgLos -gt 0 ]
- then
- outlog ping $Local_IP packet loss is $pkgLos % , please check !!!
- curT=`date '+%Y-%m-%d %T'`
- msg="$sysapp$curT ping $Local_IP packet loss $pkgLos %,请检查。"
- sed -e "s/__MSG__/$msg/g" \
- -e "s/__SHELL__/$SH_NAME/g" $msgTemp > $SH_HOME/bin/ping_chk_$Local_IP.sql
- outlog `./sendMsg.sh ping_chk_$Local_IP.sql`
- cd $SH_HOME/pyChk/
- python Demo_sms.pyo 13730885681 "$msg"
- rm $SH_HOME/bin/ping_chk_$Local_IP.sql
- fi
- outlog -------------------------------------------------------------
- done
- outlog =============================================================
- exit 0
|