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裏數據庫和表格,發送人郵箱和收件人郵箱

相關文章
相關標籤/搜索