大多数Linux管理员使用SAR报告来监控系统性能,因为它会收集一周的性能数据。但是,您可以通过更改/etc/sysconfig/sysstat文件轻松地将此时间延长至四个星期。同样,这一期限可以延长一个月以上。如果超过28个,则日志文件将放在多个目录中,每个月一个。要将覆盖期延长至28天,请对/etc/sysconfig/sysstat文件进行以下更改。编辑sysstat文件并将HISTORY=7更改为HISTORY=28。在本文中,我们添加了三个bash脚本,可帮助您轻松地在一处查看每个数据文件的平均值。这些脚本很简单。出于测试目的,我们只包括两个性能指标,CPU和内存。您可以修改脚本中的其他性能指标以满足您的需要。脚本1:从SAR报告中获取平均CPU使用率的Bash脚本此bash脚本从每个数据文件中收集CPU平均值并将其显示在一页上。由于是月底,它显示了2019年8月的28天数据。#vi/opt/scripts/sar-cpu-avg.sh#!/bin/shecho"+------------------------------------------------------------------------------+“echo”|平均:CPU%user%nice%system%iowait%steal%idle|“echo”+----------------------------------------------------------------------------+"forfilein`ls-tr/var/log/sa/sa*|grep-vsar`dodat=`sar-f$文件|头-n1|awk'{print$4}'`echo-n$datsar-f$file|grep-i平均值|sed"s/Average://"doneecho"+--------------------------------------------------------------------------------+”运行脚本后,您将看到以下输出。#sh/opt/scripts/sar-cpu-avg.sh+----------------------------------------------------------------------------------+|平均:CPU%user%nice%system%iowait%steal%idle|+----------------------------------------------------------------------------------+08/01/2019all0.700.001.190.000.0098.1008/02/2019all1.730.003.160.010.0095.1008/03/2019all1.730.003.160.010.0095.1108/04/2019all1.020.001.800.000.0097.1808/05/2019all0.680.001.080.010.0098.2408/06/2019全部0.710.710.001.170.000.0098.1208/07/2019全部1.790.003.173.170.010.0095.030308/08/2019全部.070.001.820.000.0097.1008/10/2019ALL0.380.000.000.0099.12...08/29/2019all1.500.002.330.0096.1708/30/2019ALL2.320.00.010.0094.20+-------------------------------------------------------------------------------------------------------+脚本2:从SAR报告中获取平均内存利用率的Bash脚本此bash脚本获取每个数据内存平均值收集在文件中并显示在一页上由于是月底,它显示了2019年8月的28天数据.#vi/opt/scripts/sar-memory-avg.sh#!/bin/shecho"+----------------------------------------------------------------------------------------------------------------+“echo”|平均:kbmemfreekbmemused%memusedkbbufferskbcachedkbcommit%commitkbactivekbinactkbdirty|"echo"+------------------------------------------------------------------------------------------------------------+"forfilein`ls-tr/var/log/sa/sa*|grep-vsar`做dat=`sar-f$file|头-n1|awk'{print$4}'`echo-n$datsar-r-f$file|grep-i平均值|sed"s/Average://"doneecho"+------------------------------------------------------------------------------------------------------------------+"运行脚本后,您将看到以下输出。#sh/opt/scripts/sar-memory-avg.sh+----------------------------------------------------------------------------------------------------------------+|平均:kbmemfreekbmemused%memusedkbbufferskbcachedkbcommit%commitkbactivekbinactkbdirty|+------------------------------------------------------------------------------------------------------------+08/01/20191492331238846161.55298881152142156061512.721693031380472608/02/20191493126238766661.53298881147811156962412.791696387373346308/03/20191489582239121061.62298881147076158171112.891701480370325308/04/20191490403239038961.60298881148206156967112.791697654373484408/05/20191484506239628661.75298881152409156380412.751702424374628408/06/20191473593240719962.03298881151137157749112.861715426371000808/07/20191467150241364262.19298881155639159665313.0117169003725741308/08/20191451366242942662.60298881162253160467213.081725931376998508/09/20191451191242960162.61298881158696158219212.901728819371025408/10/20191450050243074262.64298881160916157988812.8817299753708445...08/29/20191365699251509364.81298881198832159356712.9917817333761571508/30/20191361920251887264.91298881200785159510513.0017845563756418+----------------------------------------------------------------------------------------------------------+脚本3:从SAR报告中获取CPU和内存平均利用率的Bash脚本收集CPU和内存平均值并将它们显示在一页上的脚本与上面的略有不同。它在一处显示(CPU和内存)平均值,但不显示其他数据。#vi/opt/scripts/sar-cpu-mem-avg.sh#!/bin/bashforfilein`ls-tr/var/log/sa/sa*|grep-vsar`dosar-f$文件|头-n1|awk'{print$4}'echo"------------"sar-u-f$file|awk'/Average:/{printf("CPU平均值:%.2f%\n"),100-$8}'sar-r-f$file|awk'/Average:/{printf("MemoryAverage:%.2f%\n"),(($3-$5-$6)/($2+$3))*100}'printf"\n"done运行后脚本,您将看到以下输出。#sh/opt/scripts/sar-cpu-mem-avg.sh08/01/2019------------CPUAverage:1.90%MemoryAverage:31.09%08/02/2019----------CPU平均值:4.90%内存平均值:31.18%08/03/2019------------CPU平均值:4.89%内存平均值:31.29%08/04/2019------------CPU平均:2.82%内存平均:31.24%08/05/2019------------CPU平均:1.76%内存平均:31.28%...08/29/2019------------CPU平均:3.83%内存平均:33.15%08/30/2019------------CPU平均:5.80%内存平均:33.19%
