python 监测内存和cpu的使用率实例
作者:ajiong314 发布时间:2022-07-03 23:49:49
标签:python,内存,cpu,使用率
我就废话不多说了,直接上代码吧!
import paramiko
import pymysql
import time
linux = ['192.168.0.179']
def connectHost(ip, uname='shenyuming', passwd='ajiongqqq'):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username=uname, password=passwd,port=22)
return ssh
def MainCheck():
try:
while True:
time.sleep(1)
for a in range(len(linux)):
ssh = connectHost(linux[a])
# 查询主机名称
cmd = 'hostname'
stdin, stdout, stderr = ssh.exec_command(cmd)
host_name = stdout.readlines()
host_name = host_name[0]
# 查看当前时间
csj = 'date +%T'
stdin, stdout, stderr = ssh.exec_command(csj)
curr_time = stdout.readlines()
curr_time = curr_time[0]
# 查看cpu使用率,并将信息写入到数据库中(取三次平均值)
cpu = "vmstat 1 3|sed '1d'|sed '1d'|awk '{print $15}'"
stdin, stdout, stderr = ssh.exec_command(cpu)
cpu = stdout.readlines()
cpu_usage = str(round((100 - (int(cpu[0]) + int(cpu[1]) + int(cpu[2])) / 3), 2)) + '%'
# 查看内存使用率,并将信息写入到数据库中
mem = "cat /proc/meminfo|sed -n '1,4p'|awk '{print $2}'"
stdin, stdout, stderr = ssh.exec_command(mem)
mem = stdout.readlines()
mem_total = round(int(mem[0]) / 1024)
mem_total_free = round(int(mem[1]) / 1024) + round(int(mem[2]) / 1024) + round(int(mem[3]) / 1024)
mem_usage = str(round(((mem_total - mem_total_free) / mem_total) * 100, 2)) + "%"
sql = "insert into memory_and_cpu values('%s','%s','%s','%s')" % (
host_name, curr_time, cpu_usage, mem_usage)
db = connectDB()
sqlDML(sql, db)
except:
print("连接服务器 %s 异常" % (linux[a]))
def connectDB(dbname='test11'):
if dbname == 'test11':
db = pymysql.connect("localhost", "root", "shen123", "test11")
return db
def sqlDML(sql, db):
cr = db.cursor()
cr.execute(sql)
db.commit()
cr.close()
#
if __name__ == '__main__':
MainCheck()
来源:https://blog.csdn.net/weixin_41896508/article/details/80859128


猜你喜欢
- 示例代码如下:#!/usr/bin/python#-*- coding: utf-8 -*-import matplotlib.pyplot
- 本文实例讲述了Python实现清理微信僵尸粉功能。分享给大家供大家参考,具体如下:原理通过Pyhton调用itchat模块登录网页版微信,给
- 需要将字符串中的空格去掉的情况,可以使用下面几种解决方法:1、strip()方法:该方法只能把字符串头和尾的空格去掉,但是不能将字符串中间的
- 前言当我们开始准备数据建模、构建机器学习模型的时候,第一时间考虑的不应该是就考虑到选择模型的种类和方法。而是首先拿到特征数据和标签数据进行研
- 注:此方法可用于配置gitlab也可用于配置github1.在github中创建一个账号:https://github.com/join?s
- 过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数。Vue有很多很便利的过滤器,过滤器通常会使用管道标志 “ |
- 1. 取键:keys()方法#spyderbb={'人才/可怕':23,'伏地魔&波特':'
- 与django路由有区别他们都有根路由,但是不一样。django的根路由:urlpatterns = [ path('l
- 一、介绍实现的是把某个文件夹下的所有文件名提取出来,放入一个列表,在与excel中的某列进行对比,如果一致的话,对另一列进行操作,比如我们在
- 此处收集的是一些夺人心魄的创意广告牌,巧妙的构思十分值得大家观瞻.......超人归来 superman returnsNespressos
- 当然有其它工具可以做这件事,但如果客户不允许你在服务器乱装东西时这个脚本就会有用了。 DECLARE @tbImportTables tab
- Python中的random函数random模块提供生成伪随机数的函数,在使用时需要导入random模块1. random.random()
- 先安装第三方库:pip install requestsdef isConnected(): import requ
- 1.%格式符name = '李四'age = 18a = "姓名:%s,年龄:%s"%(name,age
- 简单的问答已经实现了,那么问题也跟着出现了,我不能确定问题一定是"你叫什么名字",也有可能是"你是谁"
- 闲言少叙,本文主要是想介绍一个Golang开发常见的一个问题。然而,此问题对于初学者来说却经常容易陷入坑中。问题我在写一段代码时,使用了Go
- dict的很多方法跟list有类似的地方,下面一一道来,并且会跟list做一个对比嵌套嵌套在list中也存在,就是元素是list,在dict
- 前言在github中经常可以看到下面的日历图,可以用来表示每一天在github上的活跃程度。类似的方法也可以用到空气质量的可视化方式中来,只
- 如果一张表的数据达到上百万条,用游标的方法来删除简直是个噩梦,因为它会执行相当长的一段时间…… 开发人员的噩梦——删
- 最近研究正则表达式。看到很多朋友需要IP地址的正则表达式,网上找了一下,一开始就找到了月光博客网站模板上的找了半天没有找到完整解决IP地址的