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

#!/bin/bashmysql

#计数文件路径sql

COUNT150="xxxx/xxxx/xxxxxx/xxx"数据库

#控制邮件发送次数bash

NUMBER=3服务器

#控制中止时间spa

NUM=7.net

monitoring_mysql(){orm


  if [ ! -f $1 ] ;thenblog

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里数据库和表格,发送人邮箱和收件人邮箱

相关文章
相关标签/搜索