|
|
发表于 2019-1-14 16:03:44
|
显示全部楼层
#!/bin/sh) J- R( ~0 p4 o& N3 u |
####################" s r' v5 M" U0 U2 g- w- U
#服务器ping测试程序8 G2 @# y! G: ~9 {& O l" w% W
#James Qi 20132 c" N" n& d I' }" n! z& `- }
#循环检测各台服务器,在指定的ping次数中丢失的必须小于某个设定值,如果大于则说明有问题,发邮件通知报警- v ]+ r" f0 i3 D9 H9 b- Z; ?, {/ D
#在/etc/crontab中设定本程序的执行周期
% m! q8 k. P% j1 A7 a& [ j k9 _: T####################" B1 g2 i" k% f; x+ r
#
9 c! _1 ?" d) p2 L; W1 m: s#参数设置1 G ?5 Z0 B6 n
COUNT=100 #每台服务器测试ping的次数2 r( f; F @4 P; ]% }
MAX=90 #其中最多无法ping通的次数" ^8 \6 N/ r. o6 `( W3 v
HOST=(#服务器列表,IP地址或者域名
# G2 }' ^5 L% L, N: m: n.140.x.x
( a) O1 E* M1 d+ E# U.140.xx.xx
! O3 {" U+ c [6 B8 h.140.xxx.xxx# Z; g1 k1 D$ Q! \
falcon000.startdedicated.com: Z O* O& }' r
eagle000.startdedicated.com
, B$ ~* n8 t5 }hawk000.startdedicated.com
+ \9 w @: m9 o1 T7 G; {( })
! |; ~# m) p2 u5 g3 S# L' ]! Q#循环检测5 ^! u3 m0 o; x i$ u; n9 l2 Z. S
for ipadd in "${HOST[@]}"# i( P$ w5 k* C$ n( o- @
do
: d: `8 N8 G$ R5 {* d% S timing=`date +%Y/%m/%d/%H:%M:%S`
4 Q4 Q. E: e+ ^& Q/ h ping $ipadd -c $COUNT > 1ping.log
+ T% V0 @4 J/ c) ? losspag=`grep "packet loss" 1ping.log |awk '{print $6}' |sed 's/%//g'`$ f# D3 o: w% V; j9 D( g; |
if [ $losspag -ge $MAX ] ;% i5 t0 c: R4 z2 A# ?% B
then6 Y% v; y$ }0 B2 D
echo $timing > tmp.log) {) g7 Q* @* N- k4 l+ ?
echo -n $ipadd >> tmp.log' H( O( P1 Y% }+ b9 f/ Y
echo -n "packet loss is more than $MAX of $COUNT">> tmp.log( g7 @! a8 C* [- t* a- X
cat /root/tmp.log | mail -s "$ipadd ping packet loss is more then $MAX of $COUNT" 133xxxxxxxx@189.cn
6 M) e4 \# B9 K else
. \* w+ a- N* N rm -f tmp.log: Z6 {# E. }" I4 D R8 E$ Y$ d
fi
4 [4 t; H! @* ^6 Tdone |
|