#!/bin/bash
##############################################################################
# Bash script written by Vahid Hedayati April 2013
##############################################################################
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
##############################################################################
# This script takes:
# <host> <community> <megs>

snmpwalk="/usr/bin/snmpwalk"
snmpget="/usr/bin/snmpget"

function usage() { 
echo "$0 localhost public 100"
echo "where localhost is server"
echo "public is snmp pass"
echo "100 is when swap reaches below a 100Mb"
echo "-----------------------------------"
}


server=$1;
pass=$2;
limit=$3;


if [ $# -lt 3 ]; then
    usage;
    exit 1;
fi

run=$(snmpget -v2c -c $pass $server  .1.3.6.1.4.1.2021.4.4.0)
if [[ $run =~ "INTEGER" ]]; then 
	free=$(echo $run|awk -F"INTEGER: " '{smb=( $2 / 1024); print smb}')
	if [[ $free > $limit ]]; then
		graph="swap="$free"MB;;;0"
		echo "SWAP OK:  Free $free MB.|$graph"
		exit 0;
	else
		graph="swap="$free"MB;;;0"
		echo "SWAP CRITICAL: Free $free MB.|$graph"
		exit 2;
	fi
else 
		graph="swap=0MB;;;0"
	echo "SWAP CRITICAL: does not exist|$graph"; 
	exit 2;
fi 
