返回
使用 Bash 脚本从 SAR 报告中提取 CPU 和内存利用率
见解分享
2023-10-10 23:48:25
引言
作为一名 Linux 管理员,监视系统性能至关重要,以确保平稳运行和及早发现潜在问题。系统活动报告 (SAR) 报告是 Linux 中一种强大的工具,可提供有关系统性能的宝贵见解,包括 CPU 和内存使用情况。通过使用 Bash 脚本,您可以自动化从 SAR 报告中提取这些数据的过程,从而简化性能监控任务。
从 SAR 报告中提取 CPU 利用率
要从 SAR 报告中提取 CPU 利用率,可以使用以下步骤:
- 安装 sysstat 包: 在大多数 Linux 发行版中,sysstat 包预装。但是,如果您没有安装它,请使用以下命令进行安装:
sudo apt-get install sysstat
- 生成 SAR 报告: 要生成 SAR 报告,请使用以下命令:
sar -u -r
- 解析 SAR 报告: 使用 Bash 脚本解析 SAR 报告,如下所示:
#!/bin/bash
# 提取 CPU 利用率数据
cpu_data=$(sar -u -r | grep "Average" | awk '{print $8}')
# 提取 CPU 核心数
num_cpus=$(nproc)
# 计算平均 CPU 利用率
avg_cpu_util=$(echo "$cpu_data" | awk '{sum+=$1} END {print sum / NR}')
# 打印平均 CPU 利用率
echo "平均 CPU 利用率:$avg_cpu_util%"
从 SAR 报告中提取内存利用率
要从 SAR 报告中提取内存利用率,可以使用以下步骤:
- 生成 SAR 报告: 与提取 CPU 利用率类似,使用以下命令生成 SAR 报告:
sar -r
- 解析 SAR 报告: 使用 Bash 脚本解析 SAR 报告,如下所示:
#!/bin/bash
# 提取内存利用率数据
mem_data=$(sar -r | grep "Average" | awk '{print $2}')
# 计算平均内存利用率
avg_mem_util=$(echo "$mem_data" | awk '{sum+=$1} END {print sum / NR}')
# 打印平均内存利用率
echo "平均内存利用率:$avg_mem_util%"
结合两个脚本
您可以将这两个脚本结合起来创建一个更全面的脚本,同时提取 CPU 和内存利用率。修改后的脚本如下:
#!/bin/bash
# 提取 CPU 利用率数据
cpu_data=$(sar -u -r | grep "Average" | awk '{print $8}')
# 提取 CPU 核心数
num_cpus=$(nproc)
# 计算平均 CPU 利用率
avg_cpu_util=$(echo "$cpu_data" | awk '{sum+=$1} END {print sum / NR}')
# 提取内存利用率数据
mem_data=$(sar -r | grep "Average" | awk '{print $2}')
# 计算平均内存利用率
avg_mem_util=$(echo "$mem_data" | awk '{sum+=$1} END {print sum / NR}')
# 打印结果
echo "平均 CPU 利用率:$avg_cpu_util%"
echo "平均内存利用率:$avg_mem_util%"
结论
通过使用 Bash 脚本从 SAR 报告中提取 CPU 和内存利用率,您可以简化 Linux 性能监控流程。本文提供的步骤和脚本可以帮助您轻松访问有关系统性能的关键见解,从而使您能够做出明智的决策以优化您的 Linux 环境。此外,通过自定义脚本以满足您的特定要求,您可以进一步简化监控流程并满足您的独特需求。