#!/usr/bin/python import os import psutil # cd C:Python36-32Scripts pip install psutil file = '/Users/jian.wang13/code/test/0630.txt' # 获取本机磁盘使用率和剩余空间G信息 def get_disk_info(): # 循环磁盘分区 content = "" for disk in psutil.disk_partitions(): # 读写方式 光盘 or 有效磁盘类型 if 'cdrom' in disk.opts or disk.fstype == '': continue disk_name_arr = disk.device.split(':') disk_name = disk_name_arr[0] disk_info = psutil.disk_usage(disk.device) # 磁盘剩余空间,单位G free_disk_size = disk_info.free//1024//1024//1024 # 当前磁盘使用率和剩余空间G信息 info = "%s盘使用率:%s%%, 剩余空间:%iG" % (disk_name, str(disk_info.percent), free_disk_size) # print(info) # 拼接多个磁盘的信息 content = content + info # print(content) return content # cpu信息 def get_cpu_info(): cpu_percent = psutil.cpu_percent(interval=1) cpu_info = "CPU使用率:%i%%" % cpu_percent print(cpu_info) # return cpu_info # 内存信息 def get_memory_info(): virtual_memory = psutil.virtual_memory() used_memory = virtual_memory.used/1024/1024/1024 free_memory = virtual_memory.free/1024/1024/1024 memory_percent = virtual_memory.percent memory_info = "内存使用:%0.2fG,使用率%0.1f%%,剩余内存:%0.2fG" % (used_memory, memory_percent, free_memory) print(memory_info) # return memory_info #get_disk_info() #get_cpu_info() #get_memory_info() with open(file,'a+',encoding="utf-8") as f: f.write(str(get_disk_info())) fsize = os.path.getsize(file) #print(fsize) if fsize > 1000: os.remove(file)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
获取内存
import os
def mem_usage():
f = os.popen("free -m |grep Mem |awk '{print $2,$3,$4}'")
return f.read()
if __name__ == "__main__":
print mem_usage()
获取负载
import os
def load_avg():
f = os.popen("uptime | sed 's/,//g' | awk '{print $8,$9,$10}'")
return f.read().strip()
if __name__ == "__main__":
print load_avg()
获取磁盘
import os
def disk_usage():
f = os.popen("df -h | head -2 | tail -1 | awk '{print $2,$3,$4,$5}'")
return f.read().strip()
if __name__ == "__main__":
print disk_usage()
获取cpu
import os
def cpu_usage():
f = os.popen("top -bi -n 1| awk '{print $2,$4}'").read().split('\n')[2]
return f
if __name__ == "__main__":
print cpu_usage()
接下来就是main函数
#!/usr/bin/env python
#coding:utf-8
'''
file:main.py
date:9/8/17 10:21 AM
author:lockey
email:lockey@123.com
desc:
'''
from __future__ import division
import MySQLdb as mysql
import time
import cpu,disk,load,mem
username = 'root'
password = 'redhat'
host = 'localhost'
deleteall = False
conn = mysql.connect(host,username,password)
cur = conn.cursor()
sqldisk = 'insert into diskinfo values(%s,%s,%s,%s,%s)'
sqlmem = 'insert into meminfo values(%s,%s,%s,%s)'
sqlcpu = 'insert into cpuinfo values(%s,%s,%s,%s)'
sqlload = 'insert into loadinfo values(%s,%s,%s,%s)'
try:
cur.execute('CREATE DATABASE hostinfo')
except:
pass
finally:
conn.select_db('hostinfo')
try:
cur.execute('CREATE TABLE diskinfo (total varchar(10), used varchar(10), avail varchar(10), usedPercent varchar(10), getTime varchar(30))')
cur.execute('CREATE TABLE meminfo (total varchar (20), used varchar(10), free varchar(10),getTime varchar(30))')
cur.execute('CREATE TABLE loadinfo (time1 varchar(10), time5 varchar(10), time10 varchar(10), getTime varchar(30))')
cur.execute('CREATE TABLE cpuinfo (usrused varchar(10), sysused varchar(10), usedPercent varchar(10), getTime varchar(30))')
except:
pass
finally:
diskuseinfo = disk.disk_usage().split(' ')
disksize = diskuseinfo[0]
diskuse = diskuseinfo[1]
diskfree = diskuseinfo[2]
diskused = diskuseinfo[3]
memuseinfos = map(int,mem.mem_usage().split(' '))
memtotal = memuseinfos[0]
memused = memuseinfos[1]
memfree = memuseinfos[2]
memusedp = str(round(memused/memtotal,5))+'%'
memfreep = str(round(memfree/memtotal,5))+'%'
load = load.load_avg().split(' ')
load1s = load[0]+'%'
load5s = load[1]+'%'
load15s = load[2]+'%'
cpuinfo = cpu.cpu_usage()
cpuinfo2 = cpuinfo.split(' ')
cpuusr = cpuinfo2[0]+'%'
cpusys = cpuinfo2[1]+'%'
cpuusage = str(float(cpuinfo2[0]) + float(cpuinfo2[1]))+'%'
timestr = time.time()
cur.execute(sqldisk,(disksize,diskuse,diskfree,diskused,timestr))
cur.execute(sqlmem, (memtotal, memusedp, memfreep, timestr ))
cur.execute(sqlload, (load1s, load5s, load15s, timestr))
cur.execute(sqlcpu, (cpuusr, cpusys, cpuusage, timestr))
if deleteall == True:
cur.execute('drop table cpuinfo')
cur.execute('drop table meminfo')
cur.execute('drop table diskinfo')
cur.execute('drop table loadinfo')
print 'All tables have been deleted!'
else:
cur.execute('select * from cpuinfo')
cpus = cur.fetchall()
print cpus
cur.execute('select * from meminfo')
mems = cur.fetchall()
print mems
cur.execute('select * from diskinfo')
disks = cur.fetchall()
print disks
cur.execute('select * from loadinfo')
loads = cur.fetchall()
print loads
conn.commit()
cur.close()
conn.close()
print 'Database closed!'