批量检测Mysql复制状态的shell 脚本
来源:互联网 发布:java 数组去重效率 编辑:程序博客网 时间:2024/05/20 00:15
批量检查Mysql 复制状态脚本,发现复制异常的Mysql数据库通过企业邮箱进行报警。
##############check replication result###########################
#! /bin/bash
time=`date +%Y%m%d-%H:%M:%S`if [ -f /root/script/checkresult.txt ];then
cat /dev/null > /root/script/checkresult.txt
else
touch /root/script/checkresult.txt
fi
for checklist in `cat /root/script/check_replication_list.txt`;do
#echo ${checklist}
cn=0
ip=`echo ${checklist} | awk -F ":" '{print $1}'`
port=`echo ${checklist} | awk -F ":" '{print $2}'`
output=`/opt/mysql3306/bin/mysql -urepcheck -prepcheck -h${ip} -P${port} -e "show slave status\G;" | grep -P 'Slave_(IO|SQL)_Running:'`
while read line;do
#echo $line
if [ `echo $line | awk -F ": " '{print $2}'`=='YES' ];then
cn=`expr ${cn} + 1`
fi
done<<EOF
${output}
EOF
if [ ${cn} -eq 2 ]; then
echo ${time} 'ip address:'${ip}' port:'${port}' REPLICATION IS OK!' >> /root/script/checkresult.txt
else
echo ${time} 'ip address:'${ip}' port:'${port}' REPLICATION IS ERROR!' >> /root/script/checkresult.txt
fi
done
########################在通过python检测结果发现异常通过邮箱发送邮件############################
[root@mysqltest script]# cat alert.py
from sendmail import sendmail
with open('/root/script/checkresult.txt', 'r') as f:
for line in f.readlines():
flag=line.find('OK')
if flag == -1:
sendmail(line)
################sendmail()#####################
[root@mysqltest script]# cat sendmail.py
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr(( \
Header(name, 'utf-8').encode(), \
addr.encode('utf-8') if isinstance(addr, unicode) else addr))
def sendmail(s):
from_addr = 'huym@corp.21cn.com'
password = '287473617@qq.com'
to_addr = 'huym@corp.21cn.com'
smtp_server = 'smtp.corp.21cn.com' ##公司smtp服务器
msg = MIMEText(s, 'plain', 'utf-8')
msg['From'] = _format_addr(u'Python alert <%s>' % from_addr)
msg['To'] = _format_addr(u'Administrator <%s>' % to_addr)
msg['Subject'] = Header(u'replication error', 'utf-8').encode()
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
- 批量检测Mysql复制状态的shell 脚本
- 检测mysql主从复制是否正常的shell脚本
- [Shell脚本工具]-01批量检测服务器接口状态码
- shell脚本 制定文件的批量复制
- mysql 复制检测脚本
- 检测mysql状态脚本
- shell脚本---mysql检测监控脚本系列
- 轻松接触一个检测MySQL状态的脚本
- python检测mysql状态脚本--参考
- nagios 客户端扩展脚本检测批量url web 状态
- MySQL主从复制数据一致性校验shell脚本
- shell脚本 - 检测mysql是否可用
- Shell 命令行,实现对若干网站状态批量查询是否正常的脚本
- 利用shell脚本批量复制文件到给定目录
- linux 批量复制某一类文件shell脚本
- 通过shell批量检测集群跑数据是否异常脚本
- shell 脚本监控MySQL数据库启动状态
- 一个批量重命名文件名的shell脚本
- 数字证书制作 & pvk & cer & spc & cab
- BDF2各模块依赖关系
- 打正式包混淆时遇到的坑,不要把依赖包里的model给混淆了,否则json解析的时候会找不到model,导致加载不出数据,都是null
- VC CString的用法大全
- Swift 控制流
- 批量检测Mysql复制状态的shell 脚本
- PHP手机归属地查询流程及数据获取格式化处理
- string类的data()与c_str()的区别
- 利用css3动画效果编写滑动按钮开关
- cf/Codeforces ECR16-D - Two Arithmetic Progressions-中国剩余定理
- First Unique Character in a String
- Java加密技术(四)——非对称加密算法RSA
- PHP手机归属地查询项目完结篇
- 自定义组件---瀑布流布局