获取系统性能指标的示例命令
查看 CPU 使用情况
top -b -n 1 | grep "Cpu(s)"
查看内存使用情况
free -h
查看磁盘 I/O
iostat -x 1 1
查看网络带宽
ifstat 1 1
查看进程信息
ps aux --sort=-%cpu
查看文件系统使用情况
df -h
查看系统日志
tail -f /var/log/syslog
查看上下文切换和中断
vmstat 1 1
Python 脚本:
每1秒获取一次Mac电脑的CPU、内存、磁盘使用情况,并每分钟记录一次数据到指定Excel文件中
import psutil
import time
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
# 初始化 Excel 工作簿
wb = Workbook()
ws = wb.active
ws.title = "System Monitor"
ws.append(["Timestamp", "CPU (%)", "Memory (%)", "Disk (%)"])
# 记录数据的时间间隔(秒)
record_interval = 60
data_points = []
def get_system_info():
# 获取 CPU 使用率
cpu_percent = psutil.cpu_percent(interval=1)
# 获取内存使用情况
memory_info = psutil.virtual_memory()
memory_percent = memory_info.percent
# 获取磁盘使用情况
disk_info = psutil.disk_usage('/')
disk_percent = disk_info.percent
return cpu_percent, memory_percent, disk_percent
def record_data_to_excel(data_points):
for data_point in data_points:
ws.append(data_point)
# 计算平均值
if data_points:
avg_cpu = sum(point[1] for point in data_points) / len(data_points)
avg_memory = sum(point[2] for point in data_points) / len(data_points)
avg_disk = sum(point[3] for point in data_points) / len(data_points)
# 将平均值写入 Excel
ws.append(["Average", avg_cpu, avg_memory, avg_disk])
# 保存 Excel 文件
wb.save("system_monitor.xlsx")
try:
while True:
# 获取当前时间戳
timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
# 获取系统信息
cpu_percent, memory_percent, disk_percent = get_system_info()
# 打印当前系统信息
print(f"Timestamp: {timestamp}, CPU: {cpu_percent}%, Memory: {memory_percent}%, Disk: {disk_percent}%")
# 将数据点添加到列表中
data_points.append([timestamp, cpu_percent, memory_percent, disk_percent])
# 每分钟记录一次数据到 Excel 文件
if len(data_points) >= record_interval:
record_data_to_excel(data_points)
data_points = [] # 清空数据点列表
# 等待 1 秒
time.sleep(1)
except KeyboardInterrupt:
# 如果用户中断程序(例如按 Ctrl+C),保存剩余的数据点
if data_points:
record_data_to_excel(data_points)
print("Monitoring stopped. Data saved to system_monitor.xlsx")
代码说明
初始化 Excel 工作簿: 创建一个新的 Excel 工作簿,并设置工作表名称为 "System Monitor"。在第一行添加列标题。
定义
get_system_info
函数: 使用psutil
库获取 CPU 使用率、内存使用率和磁盘使用率。定义
record_data_to_excel
函数: 将数据点列表中的数据写入 Excel 文件,并计算 CPU、内存和磁盘使用率的平均值,并将这些平均值写入 Excel 文件。保存 Excel 文件。主循环: 每秒获取一次系统信息并打印。将获取的数据添加到
data_points
列表中。当data_points
列表中的数据点数量达到 60 个时(即每分钟),调用record_data_to_excel
函数将数据写入 Excel 文件,并清空data_points
列表。使用time.sleep(1)
使程序暂停 1 秒,以实现每秒获取一次数据。异常处理: 如果用户通过按 Ctrl+C 中断程序,保存剩余的数据点并退出程序。
运行脚本
将上述代码保存到一个 Python 文件中(例如 system_monitor.py
),然后在 Linux 终端中运行它:
python3 system_monitor.py
这将开始每秒获取一次系统信息,并每分钟将数据记录到 system_monitor.xlsx
文件中。每分钟结束时,还会计算并记录 CPU、内存和磁盘使用率的平均值。如果需要停止监控,可以按 Ctrl+C。
评论区