|
|
发表于 2019-1-14 16:03:44
|
显示全部楼层
#!/bin/sh
, H# e9 q- C. \5 g* z6 k* v####################" {& S, [" V/ n" i9 ]; M
#服务器ping测试程序
5 X- o+ q. B9 H" b#James Qi 2013
, w' a3 f; `# g; U- ~5 w#循环检测各台服务器,在指定的ping次数中丢失的必须小于某个设定值,如果大于则说明有问题,发邮件通知报警3 _0 G& Y5 u5 B- s9 Y# r
#在/etc/crontab中设定本程序的执行周期6 u) b! _- w* ]( B
####################
h9 i+ \: q) z0 I/ T#/ Z4 I# I) \" s' R* d
#参数设置
% V( x1 A* u, Q/ y! RCOUNT=100 #每台服务器测试ping的次数( E7 J0 q& V/ G/ a) c
MAX=90 #其中最多无法ping通的次数
: B; M$ E+ O2 iHOST=(#服务器列表,IP地址或者域名
3 t, a+ f7 H0 D: {.140.x.x8 R' r0 s7 k Z. @& ]4 b
.140.xx.xx
: R( W+ c+ s# d. [* A. u N8 V! Q.140.xxx.xxx1 v" s r0 `3 o5 r! I" w q
falcon000.startdedicated.com
4 [' u: ~3 l/ [0 @% n4 peagle000.startdedicated.com
% h0 y4 v w/ k& e; a! vhawk000.startdedicated.com' |+ F5 i I+ U( L! P$ a5 O2 s
)/ `# l" _1 `+ u% e. r
#循环检测
( t1 h3 B8 t; t8 T$ i+ U( }for ipadd in "${HOST[@]}"
( F H8 ^* F( wdo
( s4 Z. ]! r& s* H4 K timing=`date +%Y/%m/%d/%H:%M:%S`
/ ]) Y( j! R% C! O. j ping $ipadd -c $COUNT > 1ping.log
9 r" N2 E+ q. Z# S5 ?9 t. ?7 N losspag=`grep "packet loss" 1ping.log |awk '{print $6}' |sed 's/%//g'`. W% G$ U0 F; d+ P! c$ @7 B6 d
if [ $losspag -ge $MAX ] ;9 P3 _. r9 ?" H
then+ h4 K8 M V4 V
echo $timing > tmp.log0 h e5 U5 N1 T! W& B8 K/ H; i$ A# v
echo -n $ipadd >> tmp.log
2 K" ]1 k/ L6 t8 O1 ?9 A, t echo -n "packet loss is more than $MAX of $COUNT">> tmp.log
! l3 z# f1 o P' Y7 A7 r cat /root/tmp.log | mail -s "$ipadd ping packet loss is more then $MAX of $COUNT" 133xxxxxxxx@189.cn
, r# V \# n- q* y! A# s else; K3 {1 j1 G, u) p3 y) O V( N
rm -f tmp.log
& ^6 h6 q3 R- @4 n, v" n) b5 I fi
% }6 f- e' d. _, ddone |
|