#!/bin/sh #karl@webmedianow.com #version 1.0 PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH usage(){ cat <<-EOE Usage: $0 WARNING CRITICAL Where WARNING and CRITICAL are the integer only portions of the percentage for the level desired. (i.e. 85% Warning & 95% Critical should be input only as "85 95".) EOE exit 3 } if [ $# -lt 2 ]; then usage fi WARNLEVEL=$1 CRITLEVEL=$2 # Setup standard Nagios/NRPE return codes # UNKNOWN=3 #(orange) CRITICAL=2 #(red) WARNING=1 #(yellow) OK=0 #(green) MemTotal=$(grep ^MemTotal: /proc/meminfo | awk '{print $2}') MemFree=$(grep ^MemFree: /proc/meminfo | awk '{print $2}') MemUsed=$(( $MemTotal - $MemFree )) Buffers=$(grep ^Buffers: /proc/meminfo | awk '{print $2}') Cached=$(grep ^Cached: /proc/meminfo | awk '{print $2}') WARN=$(( $MemTotal * $WARNLEVEL / 100 )) CRIT=$(( $MemTotal * $CRITLEVEL / 100 )) EXITVAL=$OK if [ $MemUsed -gt $WARN ]; then EXITVAL=$WARNING fi if [ $MemUsed -gt $CRIT ]; then EXITVAL=$CRITICAL fi case $EXITVAL in 0) STATUS=OK ;; 1) STATUS="WARNING:$WARN" ;; 2) STATUS="CRITICAL:$CRIT" ;; 3) STATUS=UNKNOWN ;; *) STATUS=ERROR ;; esac echo "$STATUS | Total=$MemTotal;;;;Used=$MemUsed;;;;Free=$MemFree;;;;Buffers=$Buffers;;;;Cached=$Cached" exit $EXITVAL