监控mysql状态_监控mysql状态脚本
发布日期:2022-02-03 13:16:58 浏览次数:7 分类:技术文章

本文共 2416 字,大约阅读时间需要 8 分钟。

监控mysql状态, 发现宕后, 自动重启, 每秒检查一次。

check.sh

#!/bin/bash

while [ true ]; do

/bin/sleep 1

sh mysql_status.sh

done

chengkill

#!/bin/sh

#pid kill thread for chenglee

#if fileformat=dos, update fileformat=unix

#code:set fileformat=unix

#check:set ff ?

if [ $# -lt 1 ]

then

echo "not procedure_name"

exit 1

fi

PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'`

for i in $PROCESS

do

echo "Kill the $1 process [ $i ]"

kill -9 $i

done

chengkill授执行权扔/usr/bin

mysql_status.sh

#!/bin/bash

#/usr/bin/nmap localhost | grep 3306

#lsof -i:3306

MYSQLPORT=`netstat -tlnp | grep "3306"|awk -F[:" "]+ '{print $4}'`

STR_TIME=$ date "+%Y-%m-%d %H:%M:%S"

function checkMysqlStatus(){

/usr/bin/mysql -uroot -plizhenghua --connect_timeout=5 -e "show databases;" &>/dev/null 2>&1

if [ $? -ne 0 ]

then

restartMysqlService

if [ "$MYSQLPORT" == "3306" ];then

echo "mysql restart successful......"

else

echo "mysql restart failure......"

python mail.py

fi

else

echo "mysql is running..."

fi

}

function restartMysqlService(){

cat code.txt

echo "测试重启mysql服务!"

echo "清除mysql残余!"

chengkill mysqld

echo "准备重启!"

service mysqld restart

echo "重启成功!"

# python mail.py

}

if [ "$MYSQLPORT" == "3306" ]

then

checkMysqlStatus

else

restartMysqlService

fi

mail.py

#!/usr/bin/python

#-*- coding:utf-8 -*-

#Python Mail for chenglee

#if fileformat=dos, update fileformat=unix

#code:set fileformat=unix

#check:set ff ?

import smtplib

from email.mime.text import MIMEText

from email.utils import formataddr

my_sender='11318@qq.com' # 发件人邮箱账号

my_pass = 'mwbajizijah' # 发件人邮箱密码(当时申请smtp给的口令)

my_user='14783@qq.com' # 收件人邮箱账号,我这边发送给自己

my_content='系统管理员您好,该系统的mysql进程已经崩溃并重启失败,请手动重启!!'

my_title='进程告警'

def mail():

ret=True

try:

msg=MIMEText(my_content,'plain','utf-8')

msg['From']=formataddr(["发件人昵称",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号

msg['To']=formataddr(["收件人昵称",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号

msg['Subject']=my_title # 邮件的主题,也可以说是标题

server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是465

server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码

server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件

server.quit()# 关闭连接

except Exception:# 如果 try 中的语句没有执行,则会执行下面的 ret=False

ret=False

return ret

ret=mail()

if ret:

print("邮件发送成功")

else:

print("邮件发送失败")

code.txt

/

/   /   /

____,____ /

// |ヽヽ \  /

^^^^^|^^^^^^^

/   | ∩,,∩ /  /

|(*(T)*)

/  0と  )  /

し─ J

chenglee

前后两个放在同一个目录, 中间chengkill扔bin, 然后守护模式运行check.sh。

转载地址:https://blog.csdn.net/weixin_34759094/article/details/113303447 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql db模块下载_亲测:MySQL安装与python下的MySQLdb使用(附软件与模块包)
下一篇:qt 调用createfile打开串口_在Ubuntu中的串口通信(1)-串口设备读写权限问题

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月24日 21时58分58秒