cpustat 是一个用于监控 CPU 使用情况的工具,它可以显示 CPU 的各种统计信息,如用户空间使用率、系统空间使用率、空闲时间等。但是,cpustat 本身并不直接提供网络监控功能。
如果你想要同时监控 CPU 和网络的使用情况,你可以考虑使用其他工具,比如 htop 或 nmon。这些工具可以提供更全面的系统监控功能。
如果你坚持使用 cpustat 并想要获取网络相关的统计信息,你可以考虑以下方法:
iftop 可以显示网络接口的实时流量,nload 可以显示网络带宽的使用情况。cpustat 和其他网络监控命令,并将结果保存到文件或数据库中,以便后续分析。Zabbix、Nagios 等。以下是一个简单的示例脚本,它使用 cpustat 和 iftop 来监控 CPU 和网络的使用情况,并将结果保存到文件中:
#!/bin/bash # 设置监控间隔(秒) interval=5 # 设置监控持续时间(分钟) duration=60 # 设置输出文件 output_file="cpu_network_monitor.log" # 清空输出文件 > $output_file # 写入标题行 echo "Timestamp,CPU User,CPU System,CPU Idle,Network In,Network Out" > $output_file # 开始监控 end_time=$((SECONDS + duration * 60)) while [ $SECONDS -lt $end_time ]; do # 获取当前时间戳 timestamp=$(date +"%Y-%m-%d %H:%M:%S") # 运行 cpustat 并获取 CPU 使用情况 cpu_user=$(cpustat -u 1 1 | awk 'NR==2 {print $2}') cpu_system=$(cpustat -u 1 1 | awk 'NR==2 {print $4}') cpu_idle=$(cpustat -u 1 1 | awk 'NR==2 {print $5}') # 运行 iftop 并获取网络使用情况(这里假设 iftop 的输出格式是固定的) network_in=$(sudo iftop -t -s 1 | grep "eth0" | awk '{print $3}') network_out=$(sudo iftop -t -s 1 | grep "eth0" | awk '{print $11}') # 将结果写入输出文件 echo "$timestamp,$cpu_user,$cpu_system,$cpu_idle,$network_in,$network_out" >> $output_file # 等待下一个监控间隔 sleep $interval done echo "Monitoring completed. Results saved to $output_file" 注意:这个脚本只是一个示例,可能需要根据你的实际需求进行调整。另外,iftop 命令需要 root 权限才能运行,因此脚本中使用了 sudo。你可以根据需要修改脚本以适应你的环境。