python3小脚本-监控服务器性能并插入mysql数据库
操作系统:
| centos版本 | 7.4 |
| 防火墙 | 关闭 |
| selinux | 关闭 |
| python版本 | 3.6 |
| mysql版本 | 5.7 |
#操作系统性能脚本
[root@localhost sql]# cat cpu_mac.py
#!/usr/bin/env python3
#coding:utf-8
import subprocess
def monitor(frist_invoke=1):
shell_command = 'sar 1 1| grep "^Average:"'
status,result = subprocess.getstatusoutput(shell_command)
if status != 0:
value_dic = {'status': status}
else:
value_dic = {}
#print('---res:',result)
user,nice,system,iowait,steal,idle = result.split()[2:]
#拿回监控数据后保存为字典
value_dic= {
'user': user,
'nice': nice,
'system': system,
'idle': idle,
'status': status
}
return value_dic
if __name__ == '__main__':
print(monitor())

#获取服务器性能后使用python3插入数据库脚本
[root@localhost sql]# cat /root/sql/class_sql.py
import pymysql
import cpu_mac
from datetime import datetime
db = pymysql.connect("192.168.10.100", "root", "root", "dx_monitor", charset="utf8")
#获取当前时间
NOW = datetime.now()
#获取当前时间,并格式化
TIME_DATE = NOW.strftime("%Y-%m-%d %H:%M:%S")
#获取当前时间,并格式化为年月
MONITOR_DATE = NOW.strftime("%Y_%m")
class monitor:
def __init__(self, db, MONITOR_DATE, TIME_DATE):
self.db = db
self.MONITOR_DATE = MONITOR_DATE
self.TIME_DATE = TIME_DATE
def create_table(self):
#获取当前数据库游标
cursor = self.db.cursor()
#查看当前数据表是否存在
date_sql = "DROP TABLE IF EXISTS res_monitor_{0}".format(self.MONITOR_DATE)
try:
#创建数据表
sql = """
CREATE TABLE res_monitor_self.MONITOR_DATE (
id int UNSIGNED AUTO_INCREMENT,
user varchar(20) NOT NULL,
nice varchar(20) NOT NULL,
system varchar (20) NOT NULL,
idle varchar(20) NOT NULL,
status varchar(20) NOT NULL,
date DATETIME,
PRIMARY KEY( id )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
""".format(self.MONITOR_DATE)
#判断数据表
data = cursor.execute(date_sql)
#执行创建表
cursor.execute(sql)
self.db.close()
#print("Database version : %s" % data)
#print("表创建成功")
except :
print('表错误')
data = cursor.execute(date_sql)
cursor.execute(sql)
self.db.close()
print("Database version : %s" % data)
print("表创建成功")
cursor.close()
self.db.close()
def insert_table(self):
de = cpu_mac.monitor()
#插入数据到数据库表空间
sql = "INSERT INTO res_monitor_{0} (user, nice, system, idle, status, date) VALUES (%s, %s, %s, %s, %s, %s)".format(self.MONITOR_DATE)
cursor = db.cursor()
T = (( de['user']), (de['nice']), (de['system']), (de['idle']), (de['status']), (self.TIME_DATE))
try:
#执行表
cursor.execute(sql, T)
self.db.commit()
print('监控数据插入ok')
# print('ok 123')
# # sql = "INSERT INTO res_monitor_{0} (user, nice, system, idle, status, date) VALUES ({1}, {2}, {3}, {4}, {5})".format(MONITOR_DATE, de['user'], de['nice'], de['system'], de['idle'], de['status'])
#
# print(sql)
#
# # cursor.execute(sql, T)
# print('监控数据插入ok')
except:
self.db.rollback()
print('监控数据插入错误')
cursor.close()
self.db.close()
if __name__ == '__main__':
db_sql = monitor(db,MONITOR_DATE,TIME_DATE)
#db_sql.create_table()
db_sql.insert_table()
#写入定时任务
[root@localhost sql]# crontab -l
* * * * * /usr/bin/python3 /root/sql/class_sql.py
#连接数据库
[root@localhost ~]# mysql -uroot -proot -h192.168.10.100
#创建的库


#创建的表

#执行的最终结果

python3小脚本-监控服务器性能并插入mysql数据库的更多相关文章
- PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析
现在需要分析访问日志,怎么办? 比如分析D:\Servers\Apache2.2\logs\access2014-05-22.log http://my.oschina.net/cart/针对这个问题 ...
- PHP大批量插入mysql数据库的优化
<?php /** * Created by PhpStorm. * User: hanks * Date: 6/2/2017 * Time: 6:03 PM */ //PHP大批量插入mysq ...
- Python datatime 格式转换,插入MySQL数据库
Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...
- Mybatis插入MySQL数据库中文乱码
Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...
- Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1. 安装MySQL ODBC驱动程序 O ...
- python 从csv文件插入mysql数据库
一个工作遇到的问题,将excel文件的内容插入到mysql数据库中. 总体思路是 excel文件-->转换成csv文件-->csv文件读取-->读取数据插入mysql数据库 用到py ...
- python批量插入mysql数据库(性能相关)以及反引号的使用
参考link: https://blog.csdn.net/qq_35958094/article/details/78462800(插入相关) https://www.cnblogs.com/hya ...
- 【性能测试】:LR插入mysql数据库数据,脚本参数化问题
一,今天准备脚本做mysql数据库的铺地数据,脚本内容不赘述,在批量执行insert语句时候,出现一个问题: // sprintf(chQuery, "insert into table ( ...
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1 背景 系统中需要批量生成单据数据到数据库表,所以采用 ...
随机推荐
- vue-learning:18 - js - watch
watch watch可以监听data和computed中值的变化. watch在实例对象作用域中可以监听实例对象的数据,即var vm = new Vue(options)时作为配置对象属性传入.监 ...
- Kafka Eagle安装详情及问题解答
1.概述 最近有很多同学给笔者留言,说在安装Kafka Eagle的时候,会遇到一些问题,请教如何解决?今天笔者就在这里总结一下安装步骤,和一些安装的注意事项,以及解决方式. 2.内容 在安装Kafk ...
- 阿里云 CentOS8 Repo
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # upda ...
- __str__、__repr__和__format__
obj.__ str __ ()是面向用户的,该方法将实例转换为一个字符 obj.__ repr __ ()面向程序员,该方法返回一个实例的代码表示形式,通常用来重新构造这个实例,repr()函数返回 ...
- mysql主从之多元复制
实验环境: 192.168.132.121 master1 192.168.132.122 master2 192.168.132.123 slave 使用gtid的方式 两个主分别是19 ...
- 在win64上使用bypy进行百度网盘文件上传
阿里云服务器的带宽为2M,网站每日的备份包都3G多了,离线下载太费时间了,打算每日将备份包自动上传到自己的百度云盘里.1.先安装Python 执行python -V ,发现没安装python2.去py ...
- mysql5.7 数据库自动备份脚本
新建备份目录 mkdir /backups mkdir /backups/mysql 新建存放备份脚本目录 mkdir /data/scripts 备份脚本: mysql_backup.sh ==== ...
- Using TFRecords and tf.Example
-----这篇其实是TensorFlow的官方tutorials,由于没有翻译,笔者姑且翻译一下,用来日后思考.------- 原址:https://www.tensorflow.org/tutori ...
- Spring是什么,Spring容器提供了那些功能,Spring的工作机制
spring是什么 spring 是一个轻型的容器,是J2EE规范的轻量级实现,可以一站式开发,其中提供了,bean工厂,用以构造我们需要的Model ,spring 是非侵入式的,spring应用中 ...
- 计算n的阶乘
题目描述 定义一个函数,传入一个整数n,打印n!的值比如:传入3打印:6 <====1*2*3 输入 整数n 输出 整数n的阶乘 样例输入 Copy 3 样例输出 Copy 6 x=in ...