check_mem

#!/bin/bash
#This Nagios plugin can be check you system memory status
USAGE_Method="$(basename $0) [-w|--warning] <Free Percent> [-c|--critical] <Free Percent>"
USAGE_Value="WARNING value must be large than CRITICAL value: `basename $0` $*"
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
#設置Nagios 要求的狀態
if [ $# -lt 4 ];then
echo
echo "Usage: $USAGE_Method"
echo
exit 0
fi
while [ $# -gt 0 ];do
case "$1" in
-w|--warning)
shift
WARNING=$1
;;
-c|--critical)
shift
CRITICAL=$1
;;
esac
shift
done
if [[ $WARNING -eq $CRITICAL || $WARNING -lt $CRITICAL ]]
then
echo
echo "$USAGE_Value"
echo
echo "Usage: $USAGE_Method"
echo
exit 0
fi
FREE_MEM=$(free -m | grep - | awk -F ' ' '{print $4}') #取當前未使用的內存,注意是未使用!
TOTAL_MEM=$(free -m | grep Mem | awk -F ' ' '{print $2}') #取當前系統總內存
PERCENT=$(bc <<< "scale=2;$FREE_MEM/$TOTAL_MEM" | tr '^.' ' ') #使用bc 輸出百分比
if [ "$PERCENT" -le "$CRITICAL" ] #如果監測百分比小於等於用戶設置的嚴重錯誤值,返回2
then
echo "CRITICAL - $FREE_MEM MB ($PERCENT%) Free Memory"
exit 2
fi
if [ "$PERCENT" -le "$WARNING" ] #如果百分比小於等於用戶設置的警告值就警告並返回1
then
echo "WARNING - $FREE_MEM MB ($PERCENT%) Free Memory"
exit 1
fi
if [ "$PERCENT" -gt "$WARNING" ] #如果百分比大於用戶設置的警告值就輸出OK 返回0
then
echo "OK - $FREE_MEM MB ($PERCENT%) Free Memory"
exit 0
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章