python MySQL-Slave从服务器状态检测脚本
#!/bin/bashmysql -e "show slave status\G" > mysql_status.txtarray=($(egrep 'Slave_IO_Running|Slave_SQL_Running|Seconds_Behind_Master' mysql_status.txt))if [[ "${array[1]}" == 'Yes' && "${array[3]}" == 'Yes' ]]then if [ "${array[5]}" -eq 0 ] then echo "MySQL slave running OK!" else echo "MySQL slave is behind master ${array[5]} seconds" fielse echo "MySQL slave sync make error" mail -s "MySQL-Slave Error on `uname -n`" 44850823@qq.comfi# -*- coding: utf-8 -*
#! /usr/bin/env python
#
#sudo easy_install fabric
#sudo easy_install paramiko
#fab -f mysql.py check
#[利用Python监测MySQL主从状态](http://hypocritical.blog.51cto.com/3388028/1680778)
#[Python fabric远程自动部署简介](http://lovesoo.org/python-fabric-yuan-cheng-zi-dong-bu-shu-jian-jie.html)
#[自动化运维工具Fabric - 密码管理](http://segmentfault.com/a/1190000000497630)
from fabric.api import *
from fabric.colors import *
from fabric.context_managers import *
from fabric.contrib.console import confirm
import string
import smtplib
import paramiko
#错误日志
#paramiko.util.log_to_file("filename.log")
#client ip
env.user='root'
env.hosts=[
'192.168.60.7',
'192.168.60.61',
]
#env.password='xx'
env.port='22'
#env.user='root'
#env.password='xx'
env.passwords={
'root@192.168.60.7:22':"password",
'root@192.168.60.61:22':"password",
}
#env.mysql_port = '3306'
@task
def check():
slave_ip = run("ip add|grep global")
for ip in env.hosts:
if ip in slave_ip:
slave_ip = ip
slave_io = run("mysql -ustatus -pxx -h"+slave_ip+" -e 'show slave status\G'|grep Slave_IO_Running:|awk '{print $2}'")
slave_sql = run("mysql -ustatus -pxx -h"+slave_ip+" -e 'show slave status\G'|grep Slave_SQL_Running:|awk '{print $2}'")
if slave_io.find('Yes')>=0 and slave_sql.find('Yes') >= 0:
pass
else:
HOST = "smtp.163.com"
SUBJECT = "MySQL Master-Slave Warning . "
TO = "xx@qq.com"
FROM = "xx@163.com"
text = "%-20s MySQL Master-Slave status : down" % slave_ip
BODY = string.join((
"From: %s" % FROM,
"To: %s" % TO,
"Subject: %s" % SUBJECT ,
"",
text
), "\r\n")
server = smtplib.SMTP()
server.connect(HOST,"25")
server.starttls()
server.login("xx@163.com","password")
server.sendmail(FROM, [TO], BODY)
server.quit()
python MySQL-Slave从服务器状态检测脚本的更多相关文章
- 如何编写LVS对Real Server的健康状态检测脚本
简介:Linux 虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的.可伸缩缩的Web, Mail, Cache和Medial等 ...
- MSC服务器-主从检测脚本-check_server_state.sh
说明: 发现keepalived会在凌晨自动进行主从切换,导致msc相关进程运行不稳定: 通过运行check_server_state.sh,及时终止/启动相关进程: 所有脚本使用supervisor ...
- Redis + keepalived 高可用行配置检测脚本
Redis 在生产配置中:除redis集群.哨兵模式之外:主从模式还是比较普遍的. 配置 redis 多主从:由 keepalived 做 VIP 地址漂移.可以实现redis的高可用性. keepa ...
- 查看mysql主从配置的状态及修正 slave不启动问题
1.查看master的状态 mysql> show master status; //Position不应该为0 mysql> show processlist; //state状态应 ...
- Mysql slave 状态之Seconds_Behind_Master
在MySQL的主从环境中,我们可以通过在slave上执行show slave status来查看slave的一些状态信息,其中有一个比较重要的参数Seconds_Behind_Master.那么你是否 ...
- MySQL slave状态之Seconds_Behind_Master【转】
在MySQL的主从环境中,我们可以通过在slave上执行show slave status来查看slave的一些状态信息,其中有一个比较重要的参数Seconds_Behind_Master.那么你是否 ...
- MySQL slave状态之Seconds_Behind_Master zz
在MySQL的主从环境中,我们可以通过在slave上执行show slave status来查看slave的一些状态信息,其中有一个比较重要的参数Seconds_Behind_Master.那么你是否 ...
- MySQL执行SHOW STATUS查询服务器状态状态之Handler_read_* 详解
在MySQL里,我们一般使用SHOW STATUS查询服务器状态,语法一般来说如下: SHOW [GLOBAL | SESSION] STATUS [LIKE ‘pattern’ | WHERE ex ...
- MySQL slave状态之Seconds_Behind_Master
在MySQL的主从环境中,我们能够通过在slave上运行show slave status来查看slave的一些状态信息,当中有一个比較重要的參数Seconds_Behind_Master.那么你是否 ...
随机推荐
- [转]Hadoop家族学习路线图
Hadoop家族学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, ...
- TrueCrypt 7.1a Hashes
Here are the SHA256, SHA1, and MD5 hashes of all TrueCrypt version 7.1a files. The signature of the ...
- C++指针易错点梳理
1 指针定义 指针是一个变量:指针的值是另一个变量的地址.变量的声明 type *var-name; var-name 是指针变量的名称.星号是用来指定一个变量var-name是指针变量. int * ...
- pycharm远程服务器进行调试
背景是这样的:我有一台远程的服务器,以及一台本地的电脑:现在我想用远程的服务器上的python编译器来运行代码,怎么办?通用的做法是ssh服务器,vim代码,之后python运行文件,但是如果遇到调试 ...
- 获取Linux服务器基本信息的shell脚本
测试运行环境: SLES12SP2 #!/bin/bash #系统名称:os_type=$(uname -o | awk '{print " | "$0}') #系统位数:32/6 ...
- markdown使用问题
1.配置自定义的markdown.css https://github.com/sameer1994kiki/markdown-css 2.代码块 一行`` 多行 ``` <code>&l ...
- Blender 3D 打印插件Print Toolbox
Blender 3D Print Toolbox Statistics 统计,可以提算出模型的体积,可供打印备料参考. Error Checking 错误检查 Solid 检查模型是否完整正确,是否有 ...
- 《DSP using MATLAB》Problem 6.21
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- python os模块使用笔记(更新)
import os 添加os模块 walk方法: os.walk(path) path是string形式的目标目录 生成一个某目录下递归树形目录迭代器,方便递归访问子目录,访问目录就能够轻松访问子文件 ...
- 编译Spring源码
近期,学习Spring源码.会陆续记录这次学习历程. Spring源码下载,环境中需要准备好的东西,git,gradle,eclipse (需要自己安装好) 1.Git clone Spring源码: ...