python 监测内存和cpu的使用率实例
我就废话不多说了,直接上代码吧!
importparamiko
importpymysql
importtime
linux=['192.168.0.179']
defconnectHost(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)
returnssh
defMainCheck():
try:
whileTrue:
time.sleep(1)
forainrange(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="vmstat13|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="insertintomemory_and_cpuvalues('%s','%s','%s','%s')"%(
host_name,curr_time,cpu_usage,mem_usage)
db=connectDB()
sqlDML(sql,db)
except:
print("连接服务器%s异常"%(linux[a]))
defconnectDB(dbname='test11'):
ifdbname=='test11':
db=pymysql.connect("localhost","root","shen123","test11")
returndb
defsqlDML(sql,db):
cr=db.cursor()
cr.execute(sql)
db.commit()
cr.close()
#
if__name__=='__main__':
MainCheck()
以上这篇python监测内存和cpu的使用率实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。