打算用这个脚本通过zabbix 监控Mariadb的,无奈要等Mariadb完全上线才行,所以先写一个粗略大致功能的版本。

#coding:utf-8
#author:shiyiwen
#version:1.1
#display:monitor mariadb galera cluster
import os
import sys
import MySQLdb
import subprocess
import time
import re def mysqlprocessstatus():
runcmd = 'service mysql start'
p = subprocess.Popen('netstat -ntlp|grep mysql',shell=True,stdout=subprocess.PIPE) #将stdout缓存进pipe
#p1 = subprocess.Popen('grep java',shell=True,stdin=p.stdout,stdout=subprocess.PIPE) #筛选出mysql进程并存入stdout
status = p.stdout.readlines()
if len(status) > 0:
return 'Sucess'
else:
sys.stderr.write('%s process down, running [%s] \n' % ('Mysql',runcmd))
subprocess.Popen(runcmd,shell=True)
if len(status) == 0:
return 'Mysql Down' def initconn():
try:
conn = MySQLdb.connect(host='172.16.38.175', user='root', passwd='anjubao.com', port=3306)
return conn
except MySQLdb.Connect().Error,e:
print "Mysql connet Error" def clusterwsrepstatus(conn,item): query = 'show status like "wsrep%"'
cur = conn.cursor()
cur.execute(query) #返回code 这个code 为 数据条数,也可以通过fetchmany来接受数据,但是要指定数据条数,对没错就是这个code!
result = cur.fetchall() #直接接受所有数据,返回多个tuple
conn.commit() #真正commit DDL DML
cur.close()
for t in result:
for i in t:
if i == item:
return t[1] def analysis():
pass def execerror():
pass def insertdb():
pass if __name__ == '__main__':
#mysqlprocessstatus()
wsrep_conn=clusterwsrepstatus(initconn(),'wsrep_connected')
wsrep_uuid=clusterwsrepstatus(initconn(),'wsrep_cluster_state_uuid')
wsrep_size=clusterwsrepstatus(initconn(),'wsrep_cluster_size') if wsrep_conn=='on' and wsrep_size=='3' and wsrep_uuid=='BBBB-BBBB':
print "mengmengda"
else:
print "Error"

用pip安装MySQLdb库,需要会提示找不到Python.h 需要安装python-dev(ubuntu)  pip install MySql-python

里面包含了许多基础知识,怕忘记 记录一下。

Python 脚本 监控数据库状态的更多相关文章

  1. shell脚本监控网站状态

    shell脚本监控网站状态 #!/bin/sh date=`date +"%Y%m%d-%H%M"` title="status" contentFail=&q ...

  2. Redis之使用python脚本监控队列长度

    编辑python脚本redis_conn.py #!/usr/bin/env python #ending:utf-8 import redis def redis_conn(): pool = re ...

  3. zabbix 调用python脚本监控 磁盘剩余空间(创建模版,创建监控项,创建触发器)

    主要 记录一下  使用zabbix 自己创建模版.监控项.触发器,并调用python脚本. 需求: 监控备份机磁盘剩余空间(windows系统) 一.安装zabbix_agent 比较简单 修改配置文 ...

  4. python脚本监控股票价格钉钉推送

    关注股市,发家致富 问题:一天天盯着股市多累,尤其上班,还不能暴露,股票软件,红红绿绿,这么明显的列表页面,一看就知道在摸鱼.被领导发现饭碗就没了 解决:搞个脚本监听一下自己关注的股票,一到价格就发个 ...

  5. 在nagios中使用python脚本监控linux主机

    在被监控端192.168.5.1101.先把getload.py放到/usr/local/nagios/libexec内[root@nhserver1 ~]# vim /usr/local/nagio ...

  6. 写一个python脚本监控在linux中的进程

    在虚拟机中安装Linux中的CentOS7系统 https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for= ...

  7. 使用python脚本监控weblogic

    1.python的脚本如下: ############################################################################### #crea ...

  8. python脚本监控获取当前Linux操作系统[内存]/[cpu]/[硬盘]/[登录用户]

    此脚本应用在linux, 前提是需要有python和python的psutil模块 脚本 #!/usr/bin/env python # coding=utf-8 import sys import ...

  9. 使用python脚本从数据库导出数据到excel

    python从数据库导出数据到excel 最近需要从数据库里导出一些数据到excel,刚开始我是使用下面的命令 select * from xxx where xxx into outfile 'xx ...

随机推荐

  1. Sublime text追踪函数插件:ctags 和php代码格式化

    转自:http://blog.csdn.net/zm2714/article/details/8076077 这两天一直纠结两款编辑器——eclipse和sublime Text. eclipse的p ...

  2. Intent界面跳转与传递数据

    Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. intent可以激活Activity,服务,广播三类组件. 本博文讲的是显示意图激活Activity组件 ...

  3. JAVA Day5

                                         数组   1.数组是一组变量的集合,存储“相同数据类型”的一组数据: 连续的空间. 2.声明一个变量就是在内存空间划出一块合适 ...

  4. Java Math floor round ceil 函数

    public final class Math extends Object public static double floor(double a) public static long round ...

  5. PhpMyAdmin管理,登录多台远程MySQL服务器

    法一: 可直接在config.inc.php里添加数据库连接信息即可 先$i++, 然后复制原来的配置信息后修改 不过这种方式需要将连接信息写在配置文件中,有点麻烦. 这种后面省事,不用填信息,选择一 ...

  6. Jenkins控制台中文输出乱码解决方法

    1. 设置jenkins所在服务器环境变量,右键我的电脑→属性→高级系统设置→环境变量,添加JAVA_TOOL_OPTIONS 2.修改Tomcat配置,进入apache_tomcat/conf文件夹 ...

  7. HDU5855 Less Time, More profit(最大权闭合子图)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5855 Description The city planners plan to build ...

  8. iOS学习05C语言函数

    本次主要是学习和理解函数,函数树状图如下: 1.函数的声明和定义 函数定义的四要素分别为: 返回值类型 :函数的结果值类型,函数不能返回数组. 指定返回类型是void类型说明函数没有返回值. 函数名 ...

  9. Hadoop IPC的代码结构分析

    与IPC相关的代码在org.apache.hadoop.ipc包下.共七个文件,其中4个辅助类: RemoteException Status VersionedProtocol Connection ...

  10. eclipse svn proxy

    C:\Users\userName\AppData\Roaming\Subversion下的servers文件, 将#http-proxy-host和#http-proxy-port这两行前面的#号去 ...