diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/check_procr.sh | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/contrib/check_procr.sh b/contrib/check_procr.sh new file mode 100644 index 00000000..c99a17e1 --- /dev/null +++ b/contrib/check_procr.sh @@ -0,0 +1,147 @@ +#!/bin/bash + +# +# Check_procr.sh +# +# Program: Process running check plugin for Nagios +# License : GPL +# Copyright (c) 2002 Jerome Tytgat (j.tytgat@sioban.net) +# +# check_procr.sh,v 1.0 2002/09/18 15:28 +# +# Description : +# +# This plugin check if at least one process is running +# +# Usage : +# +# check_procr.sh -p process_name +# +# Example : +# +# To know if snort is running +# check_procr.sh -p snort +# > OK - total snort running : PID=23441 +# +# Linux Redhat 7.3 +# + +help_usage() { + echo "Usage:" + echo " $0 -p <process_name>" + echo " $0 (-v | --version)" + echo " $0 (-h | --help)" +} + +help_version() { + echo "check_procr.sh (nagios-plugins) 1.0" + echo "The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute" + echo "copies of the plugins under the terms of the GNU General Public License." + echo "For more information about these matters, see the file named COPYING." + echo "Copyright (c) 2002 Jerome Tytgat - j.tytgat@sioban.net" + echo "Greetings goes to Websurg which kindly let me took time to develop this" + echo " Manu Feig and Jacques Kern who were my beta testers, thanks to them !" +} + +verify_dep() { + needed="bash cut egrep expr grep let ps sed sort tail test tr wc" + for i in `echo $needed` + do + type $i > /dev/null 2>&1 /dev/null + if [ $? -eq 1 ] + then + echo "I am missing an important component : $i" + echo "Cannot continue, sorry, try to find the missing one..." + exit 3 + fi + done +} + +myself=$0 + +verify_dep + +if [ "$1" = "-h" -o "$1" = "--help" ] +then + help_version + echo "" + echo "This plugin will check if a process is running." + echo "" + help_usage + echo "" + echo "Required Arguments:" + echo " -p, --process STRING" + echo " process name we want to verify" + echo "" + exit 3 +fi + +if [ "$1" = "-v" -o "$1" = "--version" ] +then + help_version + exit 3 +fi + +if [ `echo $@|tr "=" " "|wc -w` -lt 2 ] +then + echo "Bad arguments number (need two)!" + help_usage + exit 3 +fi + +tt=0 +process_name="" +exclude_process_name="" +wt="" +ct="" + +# Test of the command lines arguments +while test $# -gt 0 +do + + case "$1" in + -p|--process) + if [ -n "$process_name" ] + then + echo "Only one --process argument is useful..." + help_usage + exit 3 + fi + shift + process_name="`echo $1|tr \",\" \"|\"`" + ;; + *) + echo "Unknown argument $1" + help_usage + exit 3 + ;; + esac + shift +done + +# ps line construction set... +for i in `ps ho pid -C $process_name` +do + pid_list="$pid_list $i" +done + +if [ -z "$pid_list" ] +then + crit=1 +else + crit=0 +fi + +# Finally Inform Nagios of what we found... +if [ $crit -eq 1 ] +then + echo "CRITICAL - process $process_name is not running !" + exit 2 +else + echo "OK - process $process_name is running : PID=$pid_list " + exit 0 +fi + +# Hey what are we doing here ??? +exit 3 + |