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