#1、定义函数,实现信息的显示和日志的保存
#2、死循环、每一段时间一时间一时一时更新一次
# -*- coding: utf-8 -*-
#1、导入模块
#1、定义函数,实现信息的显示和日志的保存
#2、死循环、每一段时间一时间一时一时更新一次
# -*- coding: utf-8 -*-
#1、导入模块
import psutil
import datetime
import yagmail
#2、定义CPU的使用率
def win_monitor(time):
"""定义函数,实现信息的获取"""
cpu_per=psutil.cpu_percent(time)
#3、定义内存的使用率
memory_info=psutil.virtual_memory()
#4、定义受保护网络的信息
net_info = psutil.net_io_counters()
#5、定义受量保存硬盘信息
desk_info = psutil.disk_usage("e:")
#时时更新当前时间
now_update=datetime.datetime.now().strftime("%F %T")
#6、拼接字符串显示
log_str = "|--------------------|----------------|-------------|--- ----------|------------------------|\n"
log_str +="| 监控时间 | CPU使用率 | 内存使用率 | 硬盘使用率 | 网络使用 |\n"
log_str+= "| | 共计%d核心 |共计%.2fG内存|共计%.2fG内存 | |\n" %(psutil.cpu_count(False),memory_info.total/1024**3,desk_info.total/1024**3 )
log_str+="|--------------------|----------------|-------------|------- ------|------------------------|\n"
log_str+="|%s | %s%% | %s%% | %s%% | 收:%.2fMb |发:%.2fMb |\n" %(now_update,cpu_per,memory_info.percent,desk_info.percent,net_info.bytes_recv/1024/1024,net_info.bytes_sent/1024/1204)
log_str+="|--------------------|-----------------|-------------|-------- -----|------------------------|\n"
print(log_str)
#7保存监控文件
files= open("log.txt","a",encoding="utf8")
files.write(log_str+"\n\n")
files.close()
#判断是否达到发送邮件的条件,如果达到发送邮件
if cpu_per>80 or memory_info.percent>80 or desk_info.percent>80:
#8发送邮件
yag = yagmail.SMTP(user="yijiaqu@yeah.net",password="abc5723",host='smtp.yeah.net')
#contents="这是封测试用的邮件。看看功能是否正常"
yag.send('51-ask@163.com',"这是个测试文件",log_str)
#__name__
def main():
"""程序主入口"""
while True:
win_monitor(20)
if __name__=='__main__':
main()
电脑监控升级版,由main主入口进入,每间隔20秒更新一次监控列表