1
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 使用率を計算するためのより良い方法があれば教えてください。

4

2 に答える 2

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
于 2013-03-04T16:40:17.570 に答える
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」の代わりに「sar 5 6」を指定すると、5 秒間隔で 30 分間チェックされます。

于 2013-06-12T17:11:37.280 に答える