#! /bin/sh # Variable STATE_OK=0 STATE_WARN=1 STATE_CRIT=2 STATE_UNK=3 MAX=100 BASEURL=$(curl -s 'http://palesp02.pal.local/getValue') # Main Code CheckTemperature(){ COMMAND=$(echo $BASEURL | python3 -mjson.tool | grep Temperature | cut -d " " -f 10 | cut -d "." -f 1) COMMANDS=$(echo $BASEURL | python3 -mjson.tool | grep Temperature | cut -d " " -f 10 | cut -d "," -f 1) RESAULT=$(echo "$COMMANDS °C") case 1 in $(($COMMAND<= $WARNING))) echo "OK! Temperature is: $RESAULT" exit $STATE_OK ;; # 0-79% Ok $(($COMMAND<= $CRITICAL))) echo "WARNING! Temperature is: $RESAULT" exit $STATE_WARN ;; # 80-89% Warring $(($COMMAND<= $MAX))) echo "CRITICAL! Temperature is: $RESAULT" exit $STATE_CRIT ;; # 90-100% Critical *) echo "UNKNOWN! Temperature not found" exit $STATE_UNK ;; esac } CheckHumidity(){ COMMAND=$(echo $BASEURL | python3 -mjson.tool | grep Humidity | cut -d " " -f 10 | cut -d "." -f 1) COMMANDS=$(echo $BASEURL | python3 -mjson.tool | grep Humidity | cut -d " " -f 10 | cut -d "," -f 1) RESAULT=$(echo "$COMMANDS %") case 1 in $(($COMMAND<= $WARNING))) echo "OK! Humidity is: $RESAULT" exit $STATE_OK ;; # 0-79% Ok $(($COMMAND<= $CRITICAL))) echo "WARNING! Humidity is: $RESAULT" exit $STATE_WARN ;; # 80-89% Warring $(($COMMAND<= $MAX))) echo "CRITICAL! Humidity is: $RESAULT" exit $STATE_CRIT ;; # 90-100% Critical *) echo "UNKNOWN! Temperature not found" exit $STATE_UNK ;; esac } CheckPressure(){ COMMAND=$(echo $BASEURL | python3 -mjson.tool | grep Pressure | cut -d " " -f 10 | cut -d "," -f 1) RESAULT=$(echo "$COMMAND hPa") echo "Pressure is: $RESAULT" exit $STATE_OK } while test -n "$1"; do case "$1" in --type|-t) CHECK_TYPE=$2 shift ;; --warning|-w) WARNING=$2 shift ;; --critical|-c) CRICICAL=$2 shift ;; *) echo "Unknown argument: $1" print_usage exit $STATE_UNK ;; esac shift done # - Type Check if [ ! -z $CHECK_TYPE ]; then case "$CHECK_TYPE" in Temperature) CheckTemperature;; Humidity) CheckHumidity;; Pressure) CheckPressure;; esac else echo "Command incomplete!" echo '' print_help STATE=$STATE_UNK fi