Bash 语言 系统 CPU 使用率监控脚本

Bash阿木 发布于 2025-06-13 12 次阅读


Bash脚本系统CPU使用率监控与可视化

在Linux系统中,CPU使用率是衡量系统性能的重要指标之一。通过监控CPU使用率,我们可以及时发现系统瓶颈,优化资源分配,提高系统效率。本文将围绕Bash语言编写一个系统CPU使用率监控脚本,并通过图形化工具进行可视化展示。

Bash脚本编写

1. 获取CPU使用率

我们需要获取CPU的使用率。在Linux系统中,可以使用`top`命令或`/proc/stat`文件来获取CPU使用率。

以下是一个简单的Bash脚本,用于获取CPU使用率:

bash
!/bin/bash

获取CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/., ([0-9.])% id./1/" | awk '{print 100 - $1}')

echo "CPU Usage: $cpu_usage%"

2. 保存CPU使用率数据

为了方便后续分析,我们可以将CPU使用率数据保存到文件中。以下脚本将每分钟记录一次CPU使用率:

bash
!/bin/bash

设置保存数据的文件路径
data_file="/var/log/cpu_usage.log"

获取当前时间
current_time=$(date '+%Y-%m-%d %H:%M:%S')

获取CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/., ([0-9.])% id./1/" | awk '{print 100 - $1}')

将数据写入文件
echo "$current_time, $cpu_usage%" >> $data_file

3. 定时执行脚本

为了实现实时监控,我们可以使用`cron`定时任务来执行上述脚本。以下是一个示例:

bash
编辑crontab文件
crontab -e

添加以下行,每分钟执行一次脚本
/path/to/your/cpu_usage_script.sh

可视化展示

为了更直观地展示CPU使用率数据,我们可以使用一些图形化工具,如`gnuplot`、`matplotlib`等。

以下是一个使用`gnuplot`进行可视化的示例:

1. 安装gnuplot

bash
sudo apt-get install gnuplot

2. 修改脚本

修改之前的脚本,添加以下代码,用于生成gnuplot可执行文件:

bash
!/bin/bash

...(获取CPU使用率、保存数据等代码)

生成gnuplot可执行文件
gnuplot -e "set terminal png; set output 'cpu_usage.png'; set xlabel 'Time'; set ylabel 'CPU Usage (%)'; plot '$data_file' using 1:2 with linespoints"

3. 定时生成图表

同样,我们可以使用`cron`定时任务来执行上述脚本,实现定时生成图表:

bash
编辑crontab文件
crontab -e

添加以下行,每5分钟生成一次图表
/5 /path/to/your/cpu_usage_script.sh

总结

本文介绍了使用Bash语言编写系统CPU使用率监控脚本的方法,并通过`gnuplot`实现了数据的可视化展示。通过定时执行脚本和生成图表,我们可以实时监控CPU使用率,及时发现系统瓶颈,优化资源分配,提高系统效率。在实际应用中,可以根据需求对脚本进行扩展和优化。