云网牛站
所在位置:首页 > Linux编程 > 使用Bash脚本从SAR报告中获取平均CPU和内存使用情况

使用Bash脚本从SAR报告中获取平均CPU和内存使用情况

2019-09-05 09:11:07作者:李全运稿源:云网牛站

大多数Linux管理员使用SAR报告监视系统性能,因为它收集性能数据一周。但是,你可以通过更改“/etc/sysconfig/sysstat”文件轻松地将其延长到四周,此外,这段时间可以延长一个月以上,如果值超过28,则日志文件将放在多个目录中,每月一个。要将覆盖期延长至28天,请对“/etc/sysconfig/sysstat”文件进行以下更改,编辑sysstat文件并将HISTORY=7更改为HISTORY=28。在本文中,我们添加了三个bash脚本,可帮助你在一个位置轻松查看每个数据文件的平均值。这些脚本简单明了,出于测试目的,我们仅包括两个性能指标,即CPU和内存,你可以修改脚本中的其他性能指标以满足你的需求。

使用Bash脚本从SAR报告中获取平均CPU和内存使用情况

 

脚本1:Bash脚本从SAR报告中获取平均CPU利用率

此bash脚本从每个数据文件中收集CPU平均值并将其显示在一个页面上。

以下为示例,它显示了2019年8月的28天数据:

# vi /opt/scripts/sar-cpu-avg.sh

#!/bin/sh

echo "+-----------------------------+"

echo "|Average:         CPU     %user     %nice   %system   %iowait    %steal     %idle  |"

echo "+-----------------------------+"

for file in `ls -tr /var/log/sa/sa* | grep -v sar`

do

dat=`sar -f $file | head -n 1 | awk '{print $4}'`

echo -n $dat

sar -f $file  | grep -i Average | sed "s/Average://"

done

echo "+-----------------------------+"

运行脚本后,你将获得如下所示的输出:

# sh /opt/scripts/sar-cpu-avg.sh

使用Bash脚本从SAR报告中获取平均CPU和内存使用情况

参考:用top、vmstat、Htop、sar命令在Linux系统中检查CPU使用率/利用率

 

脚本2:Bash脚本从SAR报告中获取平均内存利用率

此bash脚本将从每个数据文件中收集内存平均值并将其显示在一个页面上。

以下是示例,它显示了2019年8月的28天数据:

# vi /opt/scripts/sar-memory-avg.sh

#!/bin/sh

echo "+-----------------------------+"

echo "|Average:       kbmemfree kbmemused  %memused kbbuffers kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty  |"

echo "+-----------------------------+"

for file in `ls -tr /var/log/sa/sa* | grep -v sar`

do

dat=`sar -f $file | head -n 1 | awk '{print $4}'`

echo -n $dat

sar -r -f $file  | grep -i Average | sed "s/Average://"

done

echo "+-----------------------------+"

运行脚本后,你将获得如下所示的输出:

# sh /opt/scripts/sar-memory-avg.sh

使用Bash脚本从SAR报告中获取平均CPU和内存使用情况

参考:检查Linux系统内存使用的五个命令盘点

 

脚本3:Bash脚本从SAR报告中获取平均CPU和内存利用率

此bash脚本从每个数据文件中收集CPU和内存平均值,并将其显示在页面上。

与上面的脚本相比,这个bash脚本略有不同,它显示了一个位置(CPU和内存)的平均值,而不是其他数据:

# vi /opt/scripts/sar-cpu-mem-avg.sh

#!/bin/bash

for file in `ls -tr /var/log/sa/sa* | grep -v sar`

do

sar -f $file | head -n 1 | awk '{print $4}'

echo "-----------"

sar -u -f $file | awk '/Average:/{printf("CPU Average: %.2f%\n"), 100 - $8}'

sar -r -f $file | awk '/Average:/{printf("Memory Average: %.2f%\n"),(($3-$5-$6)/($2+$3)) * 100 }'

printf "\n"

done

运行脚本后,你将获得如下所示的输出:

# sh /opt/scripts/sar-cpu-mem-avg.sh

使用Bash脚本从SAR报告中获取平均CPU和内存使用情况

 

相关主题

在Deepin系统中显示CPU、内存及硬盘使用率信息的工具:Sysbro

精选文章
热门文章