Bash Shell 运维监控脚本

在我生产的应用中对于服务器的监控采用的是Nagiso+联移短信进行系统的监控和短信息报警。 由于各种原因Nagios是运行在内网网段,并不能监控服务器与外网地址是否通畅。暂不考虑其它方法,看看我怎么使用脚本完成这件事。

      一、功能分析


      1.要知道服务器是否与公网联通最简单的办法就是ping一个公网的IP地址。
      2.如果你ping一个公网的IP地址的话,存在单点故障啊,如果这个IP挂了呢,并不是服务器的原因呢,所以这里要选用两个IP。
      3.在这里就选择google.cn和baidu.com,这两个一起挂的可能性几乎为0,这个安全级别是我们可以接受的。
      4.如果发现网路不通(就是百度和谷歌都ping不通了)怎么通知我呢?就用联移的短信猫通知我,只需在数据库中插入一行数据即可。

     二、代码功能实现构思

     1.ping百度,把执行结果记录到一个临时文件中。ping通返回值为0,ping不通返回值为1.
     2.ping谷歌,把执行结果记录到一个临时文件中。ping通返回值为0,ping不通返回值为1.
     3.把上面两个命令的两个返回值交给一个变量。
     4.判断这个变量的值。00为通,01或者10不能代表是服务器的问题。如果是11就肯定是服务器与外网断了。
     5.这时需要报警给SA了。

     三、代码实施

     #!/bin/bash

#-----------Network Check And Send a Message BY 赵班长-----------

DOMAIN1=www.baidu.com
DOMAIN2=www.google.cn
USER=sms
PASSWORD=unixhot
MYSQLHOST=192.168.0.12

ping -c 2 $DOMAIN1 >/dev/null
    echo -n $? > /tmp/network-status
ping -c 2 $DOMAIN2 >/dev/null
    echo -n $? >> /tmp/network-status
STATUS=`cat /tmp/network-status`

if [ "$STATUS" -eq 11 ];then
   /usr/bin/mysql -h $MYSQLHOST -u$USER -p$PASSWORD sms -e "insert into T_SendTask(DestNumber,Content) values('1368308*****','Network is Bad')"
fi

    四、脚本执行。

    1.加上执行权限,并执行。
    2.手动进行断网测试。
    3.检测是否运行正常。
    4.根据生产环境的具体情况,应用到计划任务中。

    五、后续工作。

     在工作中不停的去完善脚本。优化它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值