比较cpuusage值我如何使用shell脚本comapre CPU使用率值,我得到一个错误的[:=:预计在该行if [ $message -ne "" ]
使用shell脚本
#!/bin/sh
expected_cpuusage="95"
cpu_usage=`top -n 1 -b|grep Cpu|awk '{print $2}'|cut -d"%" -f1""`
message=""
if [ $cpu_usage -gt $expected_cpuusage ] ##{x%?}
then
echo "CPU usage exceeded";
if [ $message -ne "" ]
then
message="$message\n\nCPU usage exceeded configured usage limit \nCurrent CPU usage is $cpu_usage\nConfigured CPU usage is $expected_cpuusage";
else
message="CPU usage exceeded configured usage limit \nCurrent CPU usage is $cpu_usage\nConfigured CPU usage is $expected_cpuusage";
fi ;
fi
解析top'的'输出很难说是正确的做法。如果你的架构有这个,可以尝试'man uptime'或直接从'/ proc'中读取。 – tripleee 2012-03-28 15:03:48
我同意@tripleee。这里有一个更好的方法来获得CPU利用率:'bc <<<“scale = 3; $(ps ax -o pcpu = | sort -n | xargs printf'+%s'| cut -c 2- | bc)/ $ (grep -c^processor/proc/cpuinfo)“'(假设bash和Linux'/ proc /')。这给所有内核提供了平均值,因此双核系统上一个内核的50%利用率将返回“25.000”。 “CPU利用率”部分应该相当便携,只是“多少核心?”部分不是。 – Sorpigal 2012-03-28 15:24:02
这种方法的一个好处是你可以放下'scale = 3;'并且确保你现在得到一个非浮点数,你可以直接使用'-gt'。 – Sorpigal 2012-03-28 15:31:38