比較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