巧用手机短信来监控mysql数据库的运行壮态

作者:网络医生 发布于:2012-4-23 10:03 Monday 分类:shell

思路:

      当mysql进程死掉的时候可以发出一封邮件,移动139邮箱有邮件到达后转发到手机的功能,我们可以利用139邮箱的这个功能间接实现利用短信报警来监控mysql数据库。

      监控mysql的方法很多,我这里列出两种,基于端口号或进程来判断mysql的运行壮态。

1、基于端口号监控

#脚本名称: mysql_status.sh

#!/bin/sh

#查出服务器的ip
IPADD=`ifconfig seth0 | grep "inet addr" |awk '{print $2}' | awk -F ":" '{print $2}'`

while true
do
MYSQL_PORT=`netstat -ant |grep "LISTEN"|grep "3306"|awk '{print $4}'|awk -F ":" '{print $4}'`
   if [ "$MYSQL_PORT" == "3306" ];then
        echo "mysql is running"
   else
        echo "mysql is shudown"
        echo "$IPADD mysql is shutdown" | mail -s "msyql error" 1384909****@139.com
   fi

#每5秒循环一次
sleep 5
done

2、基于mysql进程数量来监控,MySQL正常情况有两个进程 mysqld_safe 和mysqld,这里不用去理会线程,只查找进程就行了。

#脚本名称:mysql_status.sh

#!/bin/sh
IPADD=`ifconfig seth0 | grep "inet addr" |awk '{print $2}' | awk -F ":" '{print $2}'`
while true
do
     NUM=`ps -A | grep mysqld |wc -l`
     if [ $NUM -lt 2 ];then
        echo "$IPADD mysql is shutdown" | mail -s "mysql error" 1384909****@139.com
        echo "mysql is shutdown"
     else
        echo "mysql is running"
     fi
sleep 5
done

3、推到后台去执行  nohup ./mysql_status.sh &

     虽然这是一个无限循环脚本,但你不要去怀疑这个脚本的正确与稳定性,我是从自己的生产服务上粘贴下来的,经过实践检验的。

标签: mysql shell 短信 运行壮态

发表评论:

  • 8
  • 4
  • 3
  • 6
  • 2

Powered by emlog