- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
发表于 2019-1-14 16:03:44
|
显示全部楼层
#!/bin/sh. E" R4 _1 ~2 j: H
####################
# y: v9 J) @) p5 j$ [8 b2 _: b/ `#服务器ping测试程序
1 O" F- ~, E. r! t: H' l/ H#James Qi 20135 d; ]2 A$ `4 @! Z, e
#循环检测各台服务器,在指定的ping次数中丢失的必须小于某个设定值,如果大于则说明有问题,发邮件通知报警
6 P4 e4 @ u; R; j- V4 q#在/etc/crontab中设定本程序的执行周期
; ?: ?' g- K; g v/ R####################
/ T" M; B/ E( h! ]2 H G2 C" ^#' K( }! m6 m. E1 Y( t* R: W* W
#参数设置. y; ~/ X& O" p* @; N: O/ F3 n
COUNT=100 #每台服务器测试ping的次数; e4 O9 a1 @0 Y4 V; x4 A" A
MAX=90 #其中最多无法ping通的次数
5 W# y4 X m& g1 QHOST=(#服务器列表,IP地址或者域名
, j g1 A! ~1 U; X, Q.140.x.x# c3 y) |# c8 p+ X k
.140.xx.xx% p+ l: [0 g2 p- a+ k
.140.xxx.xxx& [! b0 N# q/ P# @8 S6 E2 A
falcon000.startdedicated.com
' \* w. z4 i3 Z- d: Q! U8 Xeagle000.startdedicated.com
. T2 O9 i3 D& a4 D1 Fhawk000.startdedicated.com" ^ Z+ Y, W% a& F
)
7 P( H5 _4 q3 t6 `# C$ a/ E#循环检测
5 P4 Q/ p6 Y9 h' F% I6 cfor ipadd in "${HOST[@]}"
. k% J5 N0 g% W" q j0 W3 Tdo
" w: s; k( i2 F5 N4 ] timing=`date +%Y/%m/%d/%H:%M:%S`
- x) \0 l: r/ Q ]/ r6 A4 ~ ping $ipadd -c $COUNT > 1ping.log
^7 x* p# A B; ` losspag=`grep "packet loss" 1ping.log |awk '{print $6}' |sed 's/%//g'`4 }- H! p+ Q8 H6 q2 a
if [ $losspag -ge $MAX ] ;8 L7 E7 u5 E0 F5 B9 C
then2 P. z7 d5 [. M3 H# Y
echo $timing > tmp.log
6 I2 Y$ h& U4 g echo -n $ipadd >> tmp.log3 p$ O4 ~ ?" s% B/ a) l
echo -n "packet loss is more than $MAX of $COUNT">> tmp.log9 h) z1 e( q/ B+ }. d
cat /root/tmp.log | mail -s "$ipadd ping packet loss is more then $MAX of $COUNT" 133xxxxxxxx@189.cn
0 S$ O* o% k' t' X* I7 ]! d else+ w+ L, B: P* }0 U0 @ O/ c
rm -f tmp.log+ f& t' G3 c/ f) B1 {! ]: k
fi5 s4 b0 E+ r; m1 Q- c: V' w' O- R- W
done |
|