#!/bin/sh # nagios-submit-service -- Submit passive service check result # 2009-12-11, alex@barton.de NAME=`basename "$0"` CREATE= Usage() { echo "$NAME [-c] []"; echo echo " -c create new service, if necessary" echo " Nagios host ID" echo " Nagios service ID" echo " Status code: 0=OK, 1=Warning, 2=Error, 3=Unknown" echo " Optional status message" echo; exit 1 } Error() { echo "$NAME: $*" exit 1 } [ -r "/etc/nagios3/system.cfg" ] || Error "Can't read /etc/nagios3/system.cfg!" . /etc/nagios3/system.cfg # Validate command line arguments if [ "$1" = "-c" ]; then CREATE=1; shift fi [ $# -ge 3 -a $# -le 4 ] || Usage [ "$3" = 0 -o "$3" = "1" -o "$3" = "2" -o "$3" = "3" ] || Usage # Validate configuration [ -w "$CMDFILE" ] || Error "Can't write to \"$CMDFILE\"!" time_t=`date +%s` host="$1" service="$2" code="$3" text="${4:-}" cfg=`grep -lE "^[[:space:]]+host_name[[:space:]]+${host}\$" "$CFGDIR"/*.cfg` [ -n "$cfg" ] || Error "Host \"$host\" not configured!?" case "$service" in *"_p") # Passive service check; does it exist already? grep -E "^[[:space:]]+service_description[[:space:]]+${service}\$" \ "$cfg" >/dev/null 2>&1 if [ $? -ne 0 ]; then [ -n "$CREATE" ] || \ Error "Service \"$service\" not configured on \"$host\"!?" echo "Creating new Nagios host configuration for \"$host\" ..." cat >>"$cfg" <>"$CMDFILE"