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