|
|
发表于 2019-1-14 16:03:44
|
显示全部楼层
#!/bin/sh5 E* N. v+ C/ S* j* c9 N
####################9 Y$ ~! U- x- q/ `* L" }2 P
#服务器ping测试程序) Q5 B6 Q6 |8 ^$ g1 y8 t
#James Qi 2013; l# d% J5 y" c, J) o5 v$ R
#循环检测各台服务器,在指定的ping次数中丢失的必须小于某个设定值,如果大于则说明有问题,发邮件通知报警' r8 X5 I. {9 x$ o# R1 U7 _
#在/etc/crontab中设定本程序的执行周期
9 ]- J9 r, m. B# }1 U' O##################### F% l0 L* p s0 ]4 W9 s
#0 L' V9 W6 \# p( I6 M
#参数设置
. z- x* ~; O! N) J: mCOUNT=100 #每台服务器测试ping的次数5 ]3 \& T' v. U& C8 W
MAX=90 #其中最多无法ping通的次数) J R% \* l6 K- Z9 J% r
HOST=(#服务器列表,IP地址或者域名
3 W& a; _7 [- _.140.x.x( I! X3 o- F, m4 q7 Q& Q
.140.xx.xx/ g* d) ~0 F! @$ c6 e5 }
.140.xxx.xxx1 m' ^1 r' h e& y' T6 E0 d
falcon000.startdedicated.com
& n* |! w, n) t6 Z+ a/ Heagle000.startdedicated.com
4 E$ t" O( \% z. {7 g$ fhawk000.startdedicated.com
% L' M8 f4 D1 M2 j9 W5 T)
' X* d# @# w6 U) ^#循环检测' q% F `! |/ `& W* d4 j8 }- U
for ipadd in "${HOST[@]}"
5 i) k& e" b7 r ]6 E, {do
) a8 U5 n/ f C timing=`date +%Y/%m/%d/%H:%M:%S`7 k9 D1 \3 l( h( C# B6 u9 e
ping $ipadd -c $COUNT > 1ping.log
2 P" X8 e2 Z6 [( |. e losspag=`grep "packet loss" 1ping.log |awk '{print $6}' |sed 's/%//g'`7 Q4 @( e% U1 h5 V7 M4 C8 n
if [ $losspag -ge $MAX ] ;3 {4 Q0 B/ s& d% i, B! ~
then
8 D* r2 e, u6 c- _, t# Z. { echo $timing > tmp.log. {4 n ^5 ~$ `* u3 M
echo -n $ipadd >> tmp.log5 b" L, }! \1 [+ Z6 Z" X7 E8 D
echo -n "packet loss is more than $MAX of $COUNT">> tmp.log- e9 a0 N% g! _% s4 _- h, w" |) L
cat /root/tmp.log | mail -s "$ipadd ping packet loss is more then $MAX of $COUNT" 133xxxxxxxx@189.cn
& F) c" \0 R9 z6 p else
1 q- U9 E% S {# P% a" ] rm -f tmp.log
( c/ ]0 d( P# d3 O# V2 U7 t' R; K fi- r1 s& v0 [& a% @4 a
done |
|