python 读取数据库内存爆_python 获取centos7的内存使用率并写入mysql

本文记录使用Python3在Centos7系统中读取内存使用率,并将数据写入MySQL数据库的过程。通过分析 `/proc/meminfo` 文件获取内存信息,然后利用pymysql库连接数据库进行数据插入。代码实现了一个持续监测并记录内存使用情况的简单脚本。
摘要由CSDN通过智能技术生成

学习使用Python都有一段时间了,总是感觉基础的东西学到了点,但是真搞起项目来还没有头绪,都说读万卷书不如行万里路。说到底还是要实战。

本次仅简单记录在Python3下获取系统Centos7的内存使用率并写入Mysql数据库中。

由于Centos7和6的系统变化挻大的,所以先看看Centos7的内存信息是怎么样的。

系统版本:

[root@pydev]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

查看内存信息:其实只需要关注前7行即可;

[root@pydev ~]# cat /proc/meminfo |head -7

MemTotal: 2041468 kB

MemFree: 1669968 kB

MemAvailable: 1780008 kB

Buffers: 948 kB

Cached: 211100 kB

SwapCached: 0 kB

Active: 97692 kB

内存使用率的计算:mem_used=MemTotal-MemFree-Buffers

或者这样看吧;

[root@pydev ~]# free -m

total used free shared buff/cache available

Mem: 1993 99 1630 8 263 1738

Swap: 2047 0 2047

python 代码:

#/usr/bin/env python3

import time

import pymysql as mysql

db = mysql.connect(user='dba',passwd='123456',db='memory',host='localhost')

db.autocommit(True)

cur = db.cursor()

def getMem():

f = open('/proc/meminfo')

total = int(f.readline().split()[1])

free = int(f.readline().split()[1])

MemAvailable = f.readline().split()

cache = int(f.readline().split()[1])

mem_use = total-free-cache

t = time.time()

sql = 'insert into memory(memory,time) values(%s,%s)' %(mem_use/1024,t)

cur.execute(sql)

#print mem_use

print ('ok')

while True:

time.sleep(1)

getMem()

每隔一秒就会打印一个ok到终端,然后在Mysql里查询一下;

root@memory 02:15:15>select * from memory limit 5;

+--------+------------+

| memory | time |

+--------+------------+

| 447596 | 1495445163 |

| 447720 | 1495445164 |

| 447720 | 1495445165 |

| 447720 | 1495445166 |

| 447720 | 1495445167 |

+--------+------------+

5 rows in set (0.00 sec)

Mysql的表只用了两个字段,一个内存使用率,这个值是以兆为单位的,另一个就是时间了。

root@memory 02:19:23>show create table memory\G

*************************** 1. row ***************************

Table: memory

Create Table: CREATE TABLE `memory` (

`memory` int(11) DEFAULT NULL,

`time` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

1 row in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值