博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python mysql 监控工具_Python监视MySQL正在运行的SQL
阅读量:5733 次
发布时间:2019-06-18

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

下面是代码片段,写得比较简陋,基本想法就是使用os.popen方法执行一段命令脚本mysql -uroot -padmin -e "show full processlist;"(不太好的一点是这里写了root用户的密码,比较危险),然后逐行扫描,将带有SQL关键字的行,写入文本文件,文本文件按照当前的时间保存。

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

import os

import codecs

import datetime

if __name__ == "__main__":

cmd = 'mysql -uroot -padmin -e "show full processlist;"'

fd = os.popen(cmd)

content = []

for line in fd:

lower_line = line.lower()

if lower_line.find('select') != -1 or (lower_line.find('update') != -1 and lower_line.find('table') != -1) or lower_line.find('insert') != -1 or lower_line.find('delete') != -1 or lower_line.find('create') != -1 or lower_line.find('alter') != -1 or lower_line.find('drop') != -1 or lower_line.find('truncate') != -1:

content.append(line.strip())

fd.close()

now = str(datetime.datetime.now())

p = now.index('.')

now = now[:p]

now = now.replace('-','').replace(':','').replace(' ','')

try:

os.mkdir('/root/mysqlprocesslist/')

except Exception:

print '/root/mysqlprocesslist/ folder alreay exist, no need to create'

if len(content) > 0:

fw = codecs.open('/root/mysqlprocesslist/'+now, 'w', 'utf-8')

for c in content:

fw.write(c+'\n')

fw.close()

写完这个脚本后,在/etc/crontab中,写上

*/1 * * * * root python py_cmd.py

就可以每分钟监视了。

转载地址:http://hxowx.baihongyu.com/

你可能感兴趣的文章
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
PS 如何使用液化工具给人物减肥
查看>>
cvc-complex-type.2.4.c: The matching wildcard...
查看>>
android 读取json数据(遍历JSONObject和JSONArray)
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
<JavaScript语言精粹>-读书笔记(一)
查看>>
NPM教程
查看>>
Java学习笔记(40)——Java集合12之fail-fast
查看>>
Centos 配置IP的方式
查看>>
Go 的吉祥物,萌不萌
查看>>
Java 的swing.GroupLayout布局管理器的使用方法和实例
查看>>
Android中Activity和Fragment的生命周期的对比
查看>>
C++Primer_笔记_异常处理
查看>>
分区交换 alter table exchange partition 在线表 历史表交换
查看>>
思科三层交换 HSRP 热备 配置方法
查看>>
zabbix详解:(二)添加被监控机器
查看>>
设计模式单列
查看>>
人像模式的灯光效果?iPhone 8开挂袭来
查看>>
Linux下MongoDB安装与配置
查看>>
DSL配置(PPPOA)
查看>>