load averageを調べる
$ echo `date +"%Y/%m/%d"``uptime`
|
linuxでcpu毎の使用率を取得する。
mpstatをインストールしていない状況では以下のようにスクリプトをくむ
#!/bin/sh
if [ $# -ne 1 ]; then
/bin/echo "引数がありません。cpu0など指定してください。"
exit 1
fi
hist_file="/root/smtp_$1"
cpu1=(`/bin/cat /proc/stat | grep $1`)
if [ ! -e $hist_file ]; then
/bin/echo "$hist_fileファイルがありません。"
/bin/echo ${cpu1[@]} > $hist_file
exit 1
fi
cpu2=(`/bin/cat $hist_file`)
total=`/usr/bin/expr ${cpu1[1]} - ${cpu2[1]} + ${cpu1[2]} - ${cpu2[2]} + ${cpu1[3]} - ${cpu2[3]} + ${cpu1[4]} - ${cpu2[4]}`
user=`/bin/echo "scale=2; (${cpu1[1]} - ${cpu2[1]}) * 100 / $total" | /usr/bin/bc;`
nice=`/bin/echo "scale=2; (${cpu1[2]} - ${cpu2[2]}) * 100 / $total" | /usr/bin/bc;`
sys=`/bin/echo "scale=2; (${cpu1[3]} - ${cpu2[3]}) * 100 / $total" | /usr/bin/bc;`
idle=`/bin/echo "scale=2; (${cpu1[4]} - ${cpu2[4]}) * 100 / $total" | /usr/bin/bc;`
/usr/bin/printf " %3.2f " $user
/usr/bin/printf " %3.2f " $nice
/usr/bin/printf " %3.2f " $sys
/usr/bin/printf " %3.2f\n " $idle
/bin/echo ${cpu1[@]} > $hist_file
|
以下のパーセンテージを表示するようにします。 user nice sys idle 実行方法は以下のようにします。
# sh test2.sh cpu0
0.05 0.00 0.11 99.82
|