shell脚本监测mysql数据库连接是否异常

#!/bin/bash

#计数文件路径

COUNT150="xxxx/xxxx/xxxxxx/xxx"

#控制邮件发送次数

NUMBER=3

#控制停止时间

NUM=7

monitoring_mysql(){


  if [ ! -f $1 ] ;then

touch $1

#插入数据

echo "0" > $1

#在第一行下面插入0,

sed -i '1a\0' $1

#sed -i '2a\0' $1

#sed -i '3a\0' $1

fi

#获取count文件第二行数据,该数据是用来控制停止多少分钟后再访问,0表示发送接口请求,$NUM限制最大时间

total=$(sed -n '2p' "$1")

echo total:$total

echo Count_PATH:$1

#let "total=total+'0'"

if [ ${total} -eq 0 ];then

 cmd="select count(1) from 数据库.表名"

#获取数据库表里面个数,

 cnt=$(mysql -h$2 -u用户名 -p密码 -s -e "${cmd}")

 echo "Current count is : ${cnt}"

 count=${cnt}

echo $count

if [ $count -gt "0" ];then

  #登录成功后,将第一行数设置为0

  sed -i '1c\0' "$1"

  echo "服务正常"

else

   #获取第一行数据

   count=$(sed -n '1p' "$1")

          echo $count

          #count变量+1

          let "count=count+"1""

          #重新设置第一行数据

          sed -i "1c\ $count" $1

          echo count:$count

        #判断连续发生次数是否超过总数

       if [ ${count} -le $4 ]; then

  #第一邮箱是发送者,其他的邮箱是接受者,发送者需要在Linux环境下设置。mail设置链接:http://my.oschina.net/u/2473136/blog/608149

        echo -e '(本邮件是程序自动下发的,请勿回复!)\n\n' $5 '\n' $cnt | mail -s "警告:$5" -r fasongzheyouxiang@163.com shoujianrenyouxiang@163.com xxxx@163.com

      echo "$5发送邮件"

       else

      # 重新设置第一行,第二行数据

        sed -i '1c\0' $1

        sed -i '2c\1' $1

        echo "$5连续3次,30分钟后再发送邮件"


       fi

echo $result


fi

#停止时间处理

elif [ ${total} -le $3 ];then

   total=$(sed -n '2p' "$1")

   let "total=total+"1""

   sed -i "2c\ $total" $1

   echo $total

else

   sed -i '2c\0' $1

   echo "重新监测服务"

fi

exit

}


#邮件标题

title_150="mysql连接异常"

#ip

ip_150=xxx.xxx.xxx.xxx

monitoring_mysql $COUNT150 $ip_150 $NUM $NUMBER $title_150


#需要根据自己需要,填写服务器IP,计数文件路径,mysql的用户和密码,mysql里数据库和表格,发送人邮箱和收件人邮箱


转载于:https://my.oschina.net/u/2473136/blog/610561

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值