轻松教你学会监控cpu,内存,磁盘

import yagmail #导入yagmail模块
import psutil #导入psutil模块
def sendmail(subject,contents): #把邮件设置为函数,方便引用
#连接邮箱服务器
yag = yagmail.SMTP(user=‘[email protected]’,password=‘zjc123456789’,host=‘smtp.163.com’)
#发送邮件
yag.send(to=‘[email protected]’,subject=subject, contents=contents)
#断开连接
yag.close()
# 邮箱为本人的,password为客户端授权密码,可在自己的邮箱中设置
#分别把cpu,mem,disk设置函数,在汇总到一个总的函数中,既美观又方便调用。
本人以前把三个设置在一个函数中,发现有很多缺点。
(1)代码整体显得比较乱(2)不能单独调用(3)不方便传参数等

def cpu_info():
cpu = psutil.cpu_percent(1) #测试1秒内cpu的使用率
return cpu #添加返回值方便调用
def mem_info():
mem = psutil.virtual_memory()
total_mem = int(mem[0]/1024/1024) #内存总量(M)
free_mem = int(mem[1]/1024/1024)#剩余内存单位(M)
percent_mem = mem[2] #内存使用百分比
used_mem = int(mem[3]/1024/1024) #已用内存单位(M)
mem_dict = {
‘total_mem’:total_mem,
‘free_mem’:free_mem,
‘percent_mem’:percent_mem,
‘used_mem’:used_mem
}
return mem_dict #把返回值设置成字典,方便调用
def disk_info():
disk = psutil.disk_usage(‘c:’)
total_disk = int(disk[0]/1024/1024/1024) #总磁盘大小单位为G
used_disk = int(disk[1]/1024/1024/1024)#已用磁盘单位为G
free_disk = int(disk[2]/1024/1024/1024)#空余磁盘单位为G
percent_disk = disk[3] #磁盘使用百分比
disk_dict = {
‘total_disk’:total_disk,
‘used_disk’:used_disk,
‘free_disk’:free_disk,
‘percent_disk’:percent_disk
}
return disk_dict #同理内存,方便调用传参
def main():
cpu = cpu_info()
mem = mem_info()
disk = disk_info()
msg = ‘’’
cpu利用率:%s%% #%有特殊含义,需要再加一个百分号转义为普通含义
内存总大小:%sM
内存剩余大小:%sM
内存使用大小:%sM
内存使用率:%s%%
硬盘总大小:%sG
硬盘使用大小:%sG
硬盘剩余大小:%sG
硬盘使用率:%s%%
‘’’ % (cpu,mem.get(‘total_mem’),mem.get(‘free_mem’),mem.get(‘used_mem’),mem.get(‘percent_mem’),disk.get(‘total_disk’),disk.get(‘used_disk’),disk.get(‘free_disk’),disk.get(‘percent_disk’))
if cpu > 1:
print(‘cpu过高’)
sendmail(‘cpu报警’,msg)
else:
print(‘cpu正常’)
#也可以添加内存或者磁盘,本人只是做个简单示例
if name == ‘main’: #直接输入main+enter就可以引用main 这样调用main算是一种约定俗成吧;也可以直接引用main,不过那样不够美观。写代码不只要自己看的懂,让读者容易理解的程序才是好程序。。。。。。。。
main()

当然还可以引用time函数来或者做计划任务来实时监控,这个留给读者去尝试一下。

你可能感兴趣的:(轻松教你学会监控cpu,内存,磁盘)