Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10168377
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 系统运维

2013-11-27 16:50:00

 shell监控脚本-监控网络
2013-03-27 13:26:47
标签:网络 ping shell 脚本 监控
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dngood.blog.51cto.com/446195/1163556
shell监控脚本-监控网络


注意:请先参考 shell监控脚本-准备工作,监控脚本在 rhel5/6 下测试正常,其它版本的linux 系统请自行测试
#监控网络
cat chk_ping.sh 
#!/bin/bash 

#script_name:chk_ping.sh 
#check network 

#last update 20130320 by dongnan 
#bbs#
#blog# http://dngood.blog.51cto.com 
#lost 
# ping -f -c 20  202.013.191.31 
#PING 202.013.191.31 (202.11.191.31) 56(84) bytes of data. 
#.................... 
#--- 202.013.191.31 ping statistics --- 
#20 packets transmitted, 0 received, 100% packet loss, time 236ms 
#delay 
# ping -f -c 20 199.192.152.2 
#PING 199.192.152.2 (199.192.152.2) 56(84) bytes of data.                    
#--- 199.192.152.2 ping statistics --- 
#20 packets transmitted, 20 received, 0% packet loss, time 227ms 
#rtt min/avg/max/mdev = 266.758/268.957/272.593/1.787 ms, pipe 20, ipg/ewma 11.959/269.829 ms 

#variables 
ping=/bin/ping 
delay_limit=100
loss_limit=20
sh_dir=/root/sh/ 
crondir=${sh_dir}crontab 
source ${sh_dir}CONFIG 
user=`id -u` 
hosts="$ALLHOSTS"
#main 
#root权限 
if [ "$user" -ne 0 ];then 
    echo "must root !!" 
    exit 1 
fi 
#主循环遍历机器 
for HOST in $hosts ;do 
flag_ping_file="$crondir/log/$HOST.ping"
error_log="$crondir/log/ping_error.log"
#true 
if ! $ping -W 2 -f -c 10 $HOST > $crondir/log/ping.log 2>&1;then 
    grep "packet loss" $crondir/log/ping.log >$crondir/log/ping.loss 
    #返回值0,定义delay 与 loss 变量 
loss=`awk '{print $6}' $crondir/log/ping.loss | awk -F% '{print $1}'` 
    #loss 大于规定限制,则发送报警邮件 
    if [ "$loss" -ge "$loss_limit" ];then 
        if [ ! -f $flag_ping_file ];then 
            #sms 
            #for mobile in $MOBILES;do 
                #echo "Monitor to $HOST delay $delay'ms;$loss% packet loss" | /usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode 
            #done 
            #mail 
            for mail in $MAILS;do 
                echo "Monitor to $HOST $loss% packet loss" | mail -s "$HOST lost" $mail 
            done 
            #log 
            date +'%F %T' >>$error_log 
            cat $crondir/log/ping.log >>$error_log 
            #生成flag文件 
            echo "$HOST network error" >$flag_ping_file 
        fi 
    fi 
#false  
else 
    #loss 小于规定限制,则发送解除报警邮件 
    if [ -f $flag_ping_file ];then 
        #sms 
        #for mobile in $MOBILES;do 
            #echo "$HOST network ok"|/usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode 
        #done 
        #mail 
        for mail in $MAILS;do 
            echo "$HOST network ok" | mail -s "$HOST network ok" $MAILS 
        done 
        #delete flag 
        rm -f $flag_ping_file 
    fi 
#   
fi 

done 
结束
更多请:  
linux 系统运维  37275208  
vmware 虚拟化  166682360
本文出自 “dongnan” 博客,请务必保留此出处http://dngood.blog.51cto.com/446195/1163556
阅读(985) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~