ping监视网络是否可到达shell(邮件报警) #!/bin/bash ##By Leif Updated:2008-07-03 AM # add ip / hostname separated by while space HOSTS=”221.179.216.130 221.179.216.131 218.204.252.100 218.204.252.81 218.204.252.82 218.204.252.96 218.204.252.83 218.204.252.96 21 8.204.252.83 218.204.252.98 218.204.252.87 218.204.252.87 218.204.252.97 218.204.252.101 218.204.252.102 218.204.252.96″ # no ping request COUNT=1 EMAILID=”liangliwen@139.com” for myHost in $HOSTS do count=$(ping -c $COUNT $myHost | grep ‘received’ | awk -F’,’ ‘{ print $2 }’ | awk ‘{ print $1 }’) if [ $count -eq 0 ]; then # 100% failed echo “Host : $myHost is down (ping failed) at $(date)” | email -b -s “$myHost ping is faild” $EMAILID fi done exit 0 ping发现掉包报警shell #!/bin/bash ##By Leif Updated:2008-07-16 AM PING=`which ping` RM=`which rm` DATE=`date +%Y%m%d%H%M` TAIL=`which tail` LOG=./ping$DATE.log # add ip / hostname separated by while space HOSTS=”www.a.com www.b.com 202.96.133.33″ COUNT=200 # email report when for myHost in $HOSTS do count=$(ping -c $COUNT $myHost | grep ‘loss’ | awk -F’,’ ‘{ print $3 }’ | awk -F “%” ‘{ print $1 }’) if [ $count -ge 10 ]; then /usr/local/email/bin/email -b -s “$myHost pingispacketloss>10%$DATE” abc@abc.com fi done exit 0 复制上以上内容为ping.sh加入crontab中让其10分钟跑一次,其中发邮件程序为email ping 取平均值及丢包率的shell用途:测试IP 地址响应时间及丢包并记录 内容如下 #!/bin/bash PING=`which ping` RM=`which rm` TAIL=`which tail` HK=/tmp/hk.log CN=/tmp/cn.log IP1=www.baidu.com IP2=www.google.cn DATE=`date -d today +"%Y-%m-%d %H:%M:%S"` $RM -f /tmp/ping.log $PING $IP1 -c 2 >$HK $PING $IP2 -c 2 >$CN ##Get ping avg HKPINGAVG=`$TAIL -1 $HK | awk '{ print $4 }' | awk -F "/" '{ print $2 }'` CNPINGAVG=`$TAIL -1 $CN | awk '{ print $4 }' | awk -F "/" '{ print $2 }'` ##Geg Loss pages HKPINGLOSS=`grep loss $HK |awk -F "," '{print $3}' |awk '{print $1}'` CNPINGLOSS=`grep loss $CN |awk -F "," '{print $3}' |awk '{print $1}'` ##echo log to file echo -e "$DATE\n\tpingavg\t\tping loss\nBD:\t$HKPINGAVG\t\t$HKPINGLOSS\nGG:\t$CNPINGAVG\t\t$CNPINGLOSS" >>/tmp/ping.log ##del tmp file and exit $RM -f $HK $RM -f $CN /usr/bin/mutt -s "ping平均延时丢包率" 15880902717@139.com < /tmp/ping.log /usr/bin/mutt -s "ping平均延时丢包率" 13705061747@139.com < /tmp/ping.log exit 0 取出的/tmp/ping.log内容应如下 Tue May 27 13:56:37 CST 2008 pingavg ping loss HK: 32.011 0% CN: 48.203 0% 转自:http://www./post/5/ |
|