|
|
发表于 2019-1-14 16:03:44
|
显示全部楼层
#!/bin/sh
4 I4 g$ w. R; I7 N####################! a6 w) R* G @2 \6 e% d+ o& _# j" I
#服务器ping测试程序9 f& Z/ W, i$ {2 _( x( |
#James Qi 2013+ [9 w* U4 k4 F0 ] n; B* Q
#循环检测各台服务器,在指定的ping次数中丢失的必须小于某个设定值,如果大于则说明有问题,发邮件通知报警
8 g6 E4 V0 |( w- W2 j S#在/etc/crontab中设定本程序的执行周期
8 D) k* s3 i8 }9 }+ C####################; y* h1 }" ]( u
#2 k# v2 p O5 V1 I: F% q( j
#参数设置# y+ j$ F% k7 r0 U# H# D% D
COUNT=100 #每台服务器测试ping的次数
9 s" T* ?$ k# e/ \* J3 QMAX=90 #其中最多无法ping通的次数7 ` q: h5 |8 X' F) }$ e% V# ]" b
HOST=(#服务器列表,IP地址或者域名4 W( a6 k2 n$ y( r
.140.x.x
( e& E. O2 R& f0 X.140.xx.xx
6 V+ `8 J* q/ V& q$ w n.140.xxx.xxx
, q5 _+ [/ H7 Z1 f1 |falcon000.startdedicated.com
; P8 x ]) u% P$ @# v. Heagle000.startdedicated.com( U. M$ N9 m% E/ t; L4 a; u
hawk000.startdedicated.com
, J4 G. l6 m# h }$ u- @$ V4 z) x* G)9 r3 u% F4 G1 j1 g3 ~- C
#循环检测
$ G6 J e W- N& g7 G6 d/ S# e' p) Jfor ipadd in "${HOST[@]}"
% h' ?! b4 J+ U$ [do0 r$ G& ], B- |8 q; i2 m+ S6 G; g
timing=`date +%Y/%m/%d/%H:%M:%S`
# l. X' V% q; U7 g3 A ping $ipadd -c $COUNT > 1ping.log1 J9 L' K0 t5 p* z( Z( ]
losspag=`grep "packet loss" 1ping.log |awk '{print $6}' |sed 's/%//g'`
2 o }6 X( l) O# C if [ $losspag -ge $MAX ] ;! A7 P# v: S: w! S4 K
then7 W z$ G) V( L# K2 x6 c( p
echo $timing > tmp.log
; @$ E2 ^+ E$ }' }& g echo -n $ipadd >> tmp.log
& x a4 j4 |, J0 F2 E3 C: X echo -n "packet loss is more than $MAX of $COUNT">> tmp.log
- J5 b4 [; T( w$ j# ] cat /root/tmp.log | mail -s "$ipadd ping packet loss is more then $MAX of $COUNT" 133xxxxxxxx@189.cn
" E# b3 d/ D2 F* _: F$ e! k9 R else! [) B5 v- |& H, f7 s: L
rm -f tmp.log# Z! H4 F: Z' Q0 q
fi% L, [/ J5 r. d5 ^2 O2 F
done |
|