#!/bin/bash #=============================================== # Author : JC # Email : jiechao2013@gmail.com # ChangeLog : 2013.5.4 # # Description : Check the CPU-Utilization rate #=============================================== STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."` PROGNAME=$(basename $0) RELEASE="Revision 1.2.0" AUTHOR="(c) 2013 JC (jiechao2013@gmail.com)" print_release() { echo "$RELEASE $AUTHOR" } print_usage() { echo "" echo "$PROGNAME $RELEASE - CPU Utilization rate check script for Nagios" echo "" echo "Usage: check_cpurate.sh" echo "" echo " -v check the version" echo "" echo "Usage: $PROGNAME" echo "" exit 0 } print_help() { print_usage echo "" echo "This plugin will check CPU Utilization rate " echo "" exit 0 } while [ $# -gt 0 ]; do case "$1" in -v | --version) print_release exit $STATE_OK shift ;; *) echo "Unknown argument: $1" print_usage exit $STATE_UNKNOWN ;; esac shift done case `uname` in Linux) PERCENT=$( bc<<<"scale=2;621/977"|tr '^.' ' ') cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."` if (("$cpu_idle" < 95));then echo "OK- Utilization rate $cpu_idle (free:$PERCENT%) Free CPU" exit $STATE_OK else echo "CRITICAL- CPU Utilization rate $cpu_idle ($PERCENT%) Free CPU" exit $STATE_CRITICAL fi ;; *) echo "UNKNOWN: `uname` not yet supported by this plugin. Coming soon !" exit $STATE_UNKNOWN ;; esac