Linux下检测服务器Ping值的Shell脚本

  这个月我们连续增加了4台国外服务器,让每台服务器的负载更低一些,这样网民和搜索引擎访问更顺畅,利于流量和广告收入的提升。

  我今年早几个月曾经在网上找了一段检测Ping的代码,稍微改了一下适应我们的需要,已经用了几个月,极少数遇到某服务器ping不通的情况也得到了报警通知。今天又找出来加了一些新服务器的IP和域名,并在程序中加了一些注释,checkping.sh程序如下:

#!/bin/sh#####################服务器ping测试程序#James Qi 2013#循环检测各台服务器,在指定的ping次数中丢失的必须小于某个设定值,如果大于则说明有问题,发邮件通知报警#在/etc/crontab中设定本程序的执行周期######################参数设置COUNT=100 #每台服务器测试ping的次数MAX=90 #其中最多无法ping通的次数HOST=(#服务器列表,IP地址或者域名219.140.x.x219.140.xx.xx219.140.xxx.xxxfalcon000.startdedicated.comeagle000.startdedicated.comhawk000.startdedicated.com)#循环检测for ipadd in "${HOST[@]}"do  timing=`date +%Y/%m/%d/%H:%M:%S`  ping $ipadd -c $COUNT > 1ping.log  losspag=`grep "packet loss" 1ping.log |awk '{print $6}' |sed 's/%//g'`  if [ $losspag -ge $MAX ] ;  then    echo  $timing > tmp.log    echo -n $ipadd >> tmp.log    echo -n "packet loss is more than $MAX of $COUNT">> tmp.log    cat /root/tmp.log | mail -s "$ipadd ping packet loss is more then $MAX of $COUNT" 133xxxxxxxx@189.cn  else    rm -f tmp.log  fidone

  在/etc/crontab中设置:

*/6 * * * * root sh /root/checkping.sh &

  也就是每6分钟执行checkping.sh一次。

  这个能对服务器的监控起到一定作用。注意有时国内到国外的线路很差,也会造成报警,我加大了ping的次数到100、最多可以丢失90次来尽量消除短暂的网络不稳带来的影响,也可以在国外某台服务器上单独运行一个这个程序来专门检测国外服务器群。

自由标签: LinuxPingShell

Linux下检测服务器Ping值的Shell脚本

相关文章:

你感兴趣的文章:

标签云: