【发布时间】:2017-11-03 13:24:12
【问题描述】:
我编写了一个 shell 脚本来从 sar 报告中为命令 sar -r -f 查找平均值、最小值和最大值,如下所示
MIN1=`sar -r -f |awk '{print $5}'|grep -v '%memused'|awk 'min=="" || $0 < min {min=$0} END{ print min}'`
MAX1=`sar -r -f |awk '{print $5}'|grep -v '%memused'|grep -v '_x86_64_'|grep -v '86327'|awk 'min=="" || $0 > min {min=$0} END{ print min}'`
AVG1=`sar -r -f |awk '{print $5}'|grep -v '%memused'|grep -v '_x86_64_'|grep -v '86327'|awk '{total+=$0} END {print total/NR}'`
echo Minimum value is $MIN1 : average value is $AVG1 : maximum value is $MAX1
sar -r -f 命令 o/p:
Linux 2.6.32-431.el6.x86_64 (servername) 11/03/2017 _x86_64_ (4 CPU)
12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
Average: 315191 32697953 99.05 86327 16937751 25889218 53.25
脚本输出:
Minimum value is 95.50 : average value is 868.053 : maximum value is 86327
预期输出:
Minimum value is 95 : average value is 96 : maximum value is 97
我已使用出现在最后一列中的grep -v 86327 跳过了该值,但因为它每次输出都会发生变化。
【问题讨论】:
-
请更清楚地使用代码标签以便更好地理解。