系统监控练习----文科生的python自学之路(11)
“”"
1.思路
1.导入模块
2.定义变量保存CPU的使用率
3.定义变量保存内存使用率
4.定义变量保存硬盘信息
5.定义变量保存网络信息量
6.保存信息到日志文件
“”"
第三方库的说明:
psutil是一个开源切跨平台的库,其提供了便利的函数用来获取才做系统的信息,比如CPU,内存,磁盘,网络等。此外,psutil还可以用来进行进程管理,包括判断进程是否存在、获取进程列表、获取进程详细信息等。而且psutil还提供了许多命令行工具提供的功能,包括:ps,top,lsof,netstat,ifconfig, who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。
psutil是一个跨平台的库,在官方网站上查到其支持如下操作系统。
Linux
Windows
OSX
FreeBSD
OpenBSD
NetBSD
Sun Solaris
AIX
Works with Python versions from 2.6 to 3.X.
psutil包含了异常、类、功能函数和常量,其中功能函数用来获取系统的信息,如CPU、磁盘、内存、网络等。类用来实现进程的管理功能
2.代码
# 1.导入模块
import psutil
import datetime
# 2.定义变量保存CPU的使用率
cpu_per = psutil.cpu_percent(interval=0.5)
# 3.定义变量保存内存使用率
memory_info = psutil.virtual_memory()
# 4.定义变量保存硬盘信息 /根目录
disk_info = psutil.disk_usage("/")
# 5.定义变量保存网络信息
net_info = psutil.net_io_counters()
# 6.获取系统当前时间
current_time = datetime.datetime.now().strftime("%F %T")
# print(now_time)
# 7.拼接字符串
log_str = "┌--------------------------------┬--------------------------┬-------------------------┬-------------------------┬--------------------------------┐\n"
log_str += "│ 监控时间 │ CPU使用率 │ 内存使用率 │ 硬盘使用率 │ 网络收发量 │\n"
log_str += "│ │ (共%d核CPU) │ (总计%.2f G内存) │ (总计%.2f G硬盘) │ │\n" % (psutil.cpu_count(logical=False), memory_info.total/1024/1024/1024, disk_info.total/1024/1024/1024)
log_str += "├--------------------------------┼--------------------------┼-------------------------┼-------------------------┼--------------------------------┤\n"
log_str += "│ %s │ %s %% │ %s %% │ %s %% │ 收:%s | 发:%s │\n" % (current_time, cpu_per, memory_info.percent, disk_info.percent, net_info.bytes_recv, net_info.bytes_sent)
log_str += "└--------------------------------┴--------------------------┴-------------------------┴-------------------------┴--------------------------------┘\n"
print(log_str)
# 8.保存信息到日志文件
f = open("log.txt", 'a')
f.write('\n' + log_str + '\n')
f.close()
3.输出结果
C:\Users\wxl69\AppData\Local\Programs\Python\Python38\python.exe "C:/Users/wxl69/PycharmProjects/compass/0510 系统监控/01_系统监控.py"
┌--------------------------------┬--------------------------┬-------------------------┬-------------------------┬--------------------------------┐
│ 监控时间 │ CPU使用率 │ 内存使用率 │ 硬盘使用率 │ 网络收发量 │
│ │ (共4核CPU) │ (总计15.90 G内存) │ (总计237.23 G硬盘) │ │
├--------------------------------┼--------------------------┼-------------------------┼-------------------------┼--------------------------------┤
│ 2020-05-16 15:31:58 │ 30.9 % │ 41.3 % │ 38.5 % │ 收:266855755 | 发:171643778 │
└--------------------------------┴--------------------------┴-------------------------┴-------------------------┴--------------------------------┘
┌--------------------------------┬--------------------------┬-------------------------┬-------------------------┬--------------------------------┐
│ 监控时间 │ CPU使用率 │ 内存使用率 │ 硬盘使用率 │ 网络收发量 │
│ │ (共4核CPU) │ (总计15.90 G内存) │ (总计237.23 G硬盘) │ │
├--------------------------------┼--------------------------┼-------------------------┼-------------------------┼--------------------------------┤
│ 2020-05-16 15:32:36 │ 33.7 % │ 40.9 % │ 38.5 % │ 收:267925551 | 发:171828110 │
└--------------------------------┴--------------------------┴-------------------------┴-------------------------┴--------------------------------┘
Process finished with exit code 0