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