监控 CPU 利用率的 Bash 脚本279


在 Linux 系统中,监控 CPU 利用率对于系统分析和性能调优至关重要。可以使用各种工具和技术来收集和分析 CPU 利用率数据,其中 Bash 脚本提供了一种灵活且可定制的方式。

使用 Sar 命令

Sar 命令是获取系统活动信息的有用工具,包括 CPU 利用率。以下 Bash 脚本使用 sar 命令收集 CPU 利用率数据并将其存储在文件中:```bash
#!/bin/bash
# 定义要收集数据的持续时间(单位:秒)
DURATION=60
# 打开一个文件来存储 CPU 利用率数据
OUTPUT_FILE=""
touch $OUTPUT_FILE
# 启动 sar 命令,以 1 秒的间隔收集 CPU 利用率数据
sar -u 1 $DURATION > $OUTPUT_FILE
```

解析和分析数据

一旦收集到数据,就可以使用 Bash 脚本解析和分析它。以下脚本读取 文件并计算每个 CPU 核心的平均利用率:```bash
#!/bin/bash
# 读取 CPU 利用率数据文件
INPUT_FILE=""
# 计算 CPU 核心的数量
NUM_CPUS=$(cat /proc/cpuinfo | grep processor | wc -l)
# 初始化平均利用率变量
TOTAL_UTILIZATION=0
# 遍历文件中的每行
while read LINE
do
# 分割行并提取 CPU 利用率值
UTILIZATION=$(echo $LINE | awk '{print $8}')
# 将利用率值转换为浮点数
UTILIZATION=$(echo $UTILIZATION | bc)
# 累加所有 CPU 核心的利用率
TOTAL_UTILIZATION=$(echo "$TOTAL_UTILIZATION + $UTILIZATION" | bc)
done < $INPUT_FILE
# 计算平均利用率
AVG_UTILIZATION=$(echo "$TOTAL_UTILIZATION / $NUM_CPUS" | bc)
# 打印平均利用率
echo "Average CPU utilization: $AVG_UTILIZATION%"
```

自动生成图表

为了可视化 CPU 利用率数据,可以使用 Bash 脚本自动生成图表。以下脚本使用 Gnuplot 工具绘制 CPU 利用率随时间变化的折线图:```bash
#!/bin/bash
# 读取 CPU 利用率数据文件
INPUT_FILE=""
# 提取每行的日期和时间
TIME_DATA=$(cat $INPUT_FILE | awk '{print $1}')
# 提取每行的 CPU 利用率值
UTILIZATION_DATA=$(cat $INPUT_FILE | awk '{print $8}')
# 创建 Gnuplot 脚本文件
GNUPLOT_SCRIPT=""
echo "set terminal png" > $GNUPLOT_SCRIPT
echo "set output " >> $GNUPLOT_SCRIPT
echo "set title CPU Utilization over Time" >> $GNUPLOT_SCRIPT
echo "set xlabel Time" >> $GNUPLOT_SCRIPT
echo "set ylabel CPU Utilization (%)" >> $GNUPLOT_SCRIPT
echo "plot - with lines title CPU Utilization" >> $GNUPLOT_SCRIPT
# 将数据写入 Gnuplot 脚本文件
paste $TIME_DATA $UTILIZATION_DATA >> $GNUPLOT_SCRIPT
# 运行 Gnuplot 脚本文件
gnuplot $GNUPLOT_SCRIPT
```

计划和自动化

为了定期监控 CPU 利用率,可以使用 crontab 计划任务。以下示例计划每 15 分钟运行一次用于收集和分析 CPU 利用率数据的 Bash 脚本:```
*/15 * * * * /path/to/
```

Bash 脚本提供了灵活且可定制的方式来监控 CPU 利用率。通过使用 Sar 命令收集数据、解析和分析数据,以及自动生成图表,可以轻松实时监控和分析系统性能。通过将这些脚本计划和自动化,可以持续监控 CPU 利用率并确保系统以最佳方式运行。

2024-12-24


上一篇:Bash 脚本的命名约定和最佳实践

下一篇:揭秘最精简且安全的 Bash 脚本模版