#!/bin/sh ############################################################### # CONSTANTS ############################################################### STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 ############################################################### # PARAMETER PARSING ############################################################### usage1="Usage: $0 -h [host] -p [port] -testurl [testurl] -testtime [testtime] -fcsubscribe [fcsubscribe_yn]" exitstatus=$STATE_WARNING #default while test -n "$1"; do case "$1" in -h) host=$2 shift ;; -p) port=$2 shift ;; -testurl) testurl=$2 shift ;; -testtime) testtime=$2 shift ;; -fcsubscribe) fcsubscribe=$2 shift ;; *) echo "Unknown argument: $1" echo $usage1; exit $STATE_UNKNOWN ;; esac shift done ############################################################### # CHECK PARAMETERS ############################################################### function checkParam { if [[ -z $1 ]]; then echo $usage1 exit $STATE_UNKNOWN fi } checkParam $host checkParam $port checkParam $testurl checkParam $testtime checkParam $fcsubscribe ############################################################### # ACTUAL CODE EXECUTION ############################################################### TEMPFILE=/tmp/.tmp-$RANDOM-$RANDOM-$RANDOM-$RANDOM.tmp STATUS_CODE=$(2>&1 curl --silent -w "%{http_code}" -o $TEMPFILE http://$host:$port/check?url=$testurl\&time=$testtime\&fcsubscribe=$fcsubscribe) ############################################################### # RETURN STATUS CODE ############################################################### if [[ $STATUS_CODE -eq 000 ]]; then echo WARNING - Unable to communicate with StreamPulse host exit $STATE_WARNING fi cat $TEMPFILE rm -f $TEMPFILE if [[ $STATUS_CODE -eq 404 ]]; then exit $STATE_WARNING fi if [[ $STATUS_CODE -eq 500 ]]; then exit $STATE_CRITICAL fi if [[ $STATUS_CODE -eq 200 ]]; then exit $STATE_OK; fi if [[ $STATUS_CODE -eq 503 ]]; then exit $STATE_WARNING fi