13:30:01 CPU %user %nice %system %iowait %steal %idle
13:40:01 all 0.56 1.21 0.69 1.64 0.00 95.89
Average: all 0.63 1.25 11.10 7.48 0.00 79.55
这是sar命令的输出。我想从平均值添加%user和%system,如果超过75%,则向用户发送电子邮件。请帮助,如果有更好的方法来计算CPU使用率,请告诉我。
答案 0 :(得分:1)
#!/bin/bash
saveIFS=$IFS
IFS=$' '
USAGE=( $( sar | tail -1 | cut -c20-29,40-49 ) )
IFS=$saveIFS
SUM=0
for (( CNTR=0; CNTR<${#USAGE[@]}; CNTR+=1 )); do
FLOAT=( $( echo ${USAGE[$CNTR]} | tr ',' '.' ) )
SUM=( $( echo "$SUM+$FLOAT" |bc ) )
done
INT=${SUM/.*}
echo $INT
if [[ $INT == "" ]]; then
INT=0
fi
if [ $INT -ge 75 ]; then
mail -s "CPU usage is above 75%" mailbox@yourcompany.com < $INT
fi
答案 1 :(得分:0)
#!/bin/bash
TMPFILE=/tmp/CPUtmp
sar |awk '$1 == "Average:"{T=$3+$5; if (T > 75){print T}}' > $TMPFILE
if [ -s $TMPFILE ] ; then
mail -s "CPU usage is above 75%" mailbox@yourcompany.com < $TMPFILE
fi
如果你想要当前使用,“sar 5 6”而不是“sar”将以5秒的间隔检查半分钟。