test.sh
read LINE < /proc/loadavg
LA1=`echo $LINE | cut -d " " -f 1`
LA2=`echo $LINE | cut -d " " -f 2`
LA3=`echo $LINE | cut -d " " -f 3`
LA4=`echo $LINE | cut -d " " -f 4`
PS=`echo $LA4 | cut -d "/" -f 2`
VFLA1=`echo "$LA1 > 5" | bc` || 0
VFLA2=`echo "$LA2 > 5" | bc` || 0
VFLA3=`echo "$LA3 > 5" | bc` || 0
VFPS=`echo "$PS > 250" | bc` || 0
VF=`echo "$VFLA1 || $VFLA2 || $VFLA3 || $VFPS" | bc` || 0
echo "$VFLA1 $VFLA2 $VFLA3 $VFPS $VF"
message="$LAMES ロードアベレージ=$LA1 $LA2 $LA3 $PSMES 総プロセス=$PS"
- もっとキレイになりたいけど`echo "式" | bc` || 0の連続で
- 期待通りに動いた
test.sh
LAMES=
PSMES=
read LINE < /proc/loadavg
LA1=`echo $LINE | cut -d " " -f 1`
LA2=`echo $LINE | cut -d " " -f 2`
LA3=`echo $LINE | cut -d " " -f 3`
LA4=`echo $LINE | cut -d " " -f 4`
PS=`echo $LA4 | cut -d "/" -f 2`
VFLA1=`echo "$LA1 > 5" | bc` || 0
VFLA2=`echo "$LA2 > 5" | bc` || 0
VFLA3=`echo "$LA3 > 5" | bc` || 0
VFPS=`echo "$PS > 250" | bc` || 0
VF=`echo "$VFLA1 || $VFLA2 || $VFLA3 || $VFPS" | bc` || 0
echo "$VFLA1 $VFLA2 $VFLA3 $VFPS $VF"
NFLA1=`echo "$LA1 > 10" | bc` || 0
NFLA2=`echo "$LA2 > 10" | bc` || 0
NFLA3=`echo "$LA3 > 10" | bc` || 0
NF=`echo "$NFLA1 || $NFLA2 || $NFLA3" | bc` || 0
echo "$NFLA1 $NFLA2 $NFLA3 $NF"
if [ $NF -eq 1 ]
then
LAMES="【注意】"
fi
WFLA1=`echo "$LA1 > 20" | bc` || 0
WFLA2=`echo "$LA2 > 20" | bc` || 0
WFLA3=`echo "$LA3 > 20" | bc` || 0
WF=`echo "$WFLA1 || $WFLA2 || $WFLA3" | bc` || 0
echo "$WFLA1 $WFLA2 $WFLA3 $WF"
if [ $WF -eq 1 ]
then
LAMES="【!警告!】"
fi
EFLA1=`echo "$LA1 > 40" | bc` || 0
EFLA2=`echo "$LA2 > 40" | bc` || 0
EFLA3=`echo "$LA3 > 40" | bc` || 0
EF=`echo "$EFLA1 || $EFLA2 || $EFLA3" | bc` || 0
echo "$EFLA1 $EFLA2 $EFLA3 $EF"
if [ $EF -eq 1 ]
then
LAMES="【!!緊急!!】"
fi
WPS=`echo "$PS > 500" | bc`
if [ $WPS -eq 1 ]
then
PSMES="【プロセス過多】"
fi
message="$LAMES ロードアベレージ=$LA1 $LA2 $LA3 $PSMES 総プロセス=$PS"
if [ $VF -eq 1 ]
then
echo $message
fi
- 条件判別はif [ $VF -eq 1 ]こう書かないとだめ