在vm虚拟机里面无法运行不知道哪出问题了

import os
import time
import matplotlib.pyplot as plt
# 设置采集间隔时间为5分钟
interval = 5 * 60
# 定义数据列表
cpu_list = []
mem_list = []
net_list = []
disk_list = []
# 获取系统资源使用情况
def get_system_resources():
cpu_usage = os.popen("top -bn1 | grep 'Cpu(s)' | awk '{print $2 + $4}'").read().strip() # 获取CPU使用率
mem_usage = os.popen("free -m | awk 'NR==2{printf $3/$2 * 100.0}'").read().strip() # 获取内存使用率
net_bw = os.popen("iftop -n -N -F src-port,dst-port | awk '{print $10}' | grep -v '=>' | awk -F 'M' '{print $1}'").read().strip() # 获取网络带宽使用情况
disk_usage = os.popen("df -h / | awk 'NR==2{print $5}'").read().strip() # 获取磁盘使用情况
return cpu_usage, mem_usage, net_bw, disk_usage
# 采集并保存系统资源数据
def log_system_resources():
while True:
cpu, mem, net, disk = get_system_resources()
cpu_list.append(cpu)
mem_list.append(mem)
net_list.append(net)
disk_list.append(disk)
time.sleep(interval) # 等待5分钟
if __name__ == "__main__":
log_system_resources()
# 将采集结果输出到桌面并保存为文件
os.system("echo 'CPU,Memory,Network,Disk' > system_resources.csv") # 添加标题行
for i in range(len(cpu_list)):
os.system(f"echo -e '{cpu_list[i]},{mem_list[i]},{net_list[i]},{disk_list[i]}' >> system_resources.csv") # 添加数据行
# 读取日志文件并绘制CPU、内存、网络带宽使用情况图
data = [cpu_list, mem_list, net_list]
labels = ['CPU', 'Memory', 'Network']
for i in range(len(data)):
plt.plot(data[i], label=labels[i])
plt.legend()
plt.xlabel('Time (Minutes)')
plt.ylabel('Usage (%)')
plt.title('System Resource Usage Over Time')
plt.savefig('system_resources.png') # 保存为PNG图片文件