Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
language bash
#!/bin/bash
# GadgetKeeper notificator

#Change following values as necessary
API_KEY="a759beb821f74f6b8d8858034590809a"
THING_ID="8a78e074ca3d11e3bdd5475d929ef4f3"
FREE_EVENT="bc019ca8cbdd11e385514191276b8f7f"
MYSQL_EVENT="b7eb4063d13011e3a6bfc1f93a7bffd5"
NAME_PROP="0dd2f9b8ca3e11e3bdd5475d929ef4f3"
UPTIME_PROP="24969cb9ca3e11e3bdd5475d929ef4f3"

URL="http://devapi.gadgetkeeper.com"

CUR_DATE=$(date +%FT%T.%NZ)
HOST_NAME=$(/bin/cat /etc/hostname)
NAME_MSG="dataTime: "$CUR_DATE" Host Name: "$HOST_NAME
echo "----"
echo "Date/Time: "$CUR_DATE
echo "Host-name: "$HOST_NAME

FREE=$(/usr/bin/free -m | /bin/grep "Mem:" | /usr/bin/awk -F " " '{print LKR522}')
echo "Free RAM: "$FREE"M"
#FREE=29.9

uptime=$(</proc/uptime)
uptime=${uptime%%.*}
seconds=$(( uptime%60 ))
minutes=$(( uptime/60%60 ))
hours=$(( uptime/60/60%24 ))
days=$(( uptime/60/60/24 ))
up_time="$days days: $hours hours: $minutes min: $seconds sec"
echo "Uptime: "$up_time

#test Mysql service status
#up-1 down-0
MYSQL_STST=$(/etc/init.d/mysql status >/dev/null 2>/dev/null && echo 1 || echo 0)
echo "Mysql status: "$MYSQL_STST
echo "----"

TMP_FILE="/tmp/tmp.txt"
#---------------------------------------------------------------------------------------------------
#API calls(property)
#host name update
echo -n "Host-name set: "
curl -i -X PUT -H "X-ApiKey: $API_KEY" -H "Content-Type: text/json; charset=UTF-8" -d "$NAME_MSG" \
$URL"/v1/things/$THING_ID/properties/$NAME_PROP/value.json" > "$TMP_FILE" 2> /dev/null
if [ -f "$TMP_FILE" ]; then
        RESPONSE=`cat "$TMP_FILE" | head -1`
        IS_OK=`echo "$RESPONSE" | grep "HTTP/1.1 204"`
        #echo -n "Host-name set: "
        if [ "$IS_OK" != "" ]; then
                echo "OK"
        else
                echo "FAIL"
                echo "$RESPONSE"
        fi
else
        echo "Error"
fi

#---------------------------------------------------------------------------------------------------
#up time update
echo -n "Uptime set: "
curl -i -X PUT -H "X-ApiKey: $API_KEY" -H "Content-Type: text/json; charset=UTF-8" -d "$up_time" \
$URL"/v1/things/$THING_ID/properties/$UPTIME_PROP/value.json" > "$TMP_FILE" 2> /dev/null
if [ -f "$TMP_FILE" ]; then
        RESPONSE=`cat "$TMP_FILE" | head -1`
        IS_OK=`echo "$RESPONSE" | grep "HTTP/1.1 204"`
        #echo -n "Uptime set: "
        if [ "$IS_OK" != "" ]; then
                echo "OK"
        else
                echo "FAIL"
                echo "$RESPONSE"
        fi
else
        echo "Error"
fi

#---------------------------------------------------------------------------------------------------
#API calls(event)
#free memory update
echo -n "RAM value update: "
curl -i -X POST -H "X-ApiKey: $API_KEY" -H "Content-Type: text/json; charset=UTF-8" -d \
'[{"value":'$FREE',"at":"'$CUR_DATE'"}]' $URL"/v1/things/$THING_ID/events/$FREE_EVENT/datapoints.json" > "$TMP_FILE" 2> /dev/null
if [ -f "$TMP_FILE" ]; then
        RESPONSE=`cat "$TMP_FILE" | head -1`
        IS_OK=`echo "$RESPONSE" | grep "HTTP/1.1 204"`
        #echo -n "RAM value set: "
        if [ "$IS_OK" != "" ]; then
                echo "OK"
        else
                echo "FAIL"
                echo "$RESPONSE"
        fi
else
        echo "Error"
fi

#---------------------------------------------------------------------------------------------------
#API calls(event)
#mysql status update
echo -n "Mysql states update: "
curl -i -X POST -H "X-ApiKey: $API_KEY" -H "Content-Type: text/json; charset=UTF-8" -d \
'[{"value":'$MYSQL_STST',"at":"'$CUR_DATE'"}]' $URL"/v1/things/$THING_ID/events/$MYSQL_EVENT/datapoints.json" > "$TMP_FILE" 2> /dev/null

if [ -f "$TMP_FILE" ]; then
        RESPONSE=`cat "$TMP_FILE" | head -1`
        IS_OK=`echo "$RESPONSE" | grep "HTTP/1.1 204"`
        #echo -n "Mysql states update: "
        if [ "$IS_OK" != "" ]; then
                echo "OK"
        else
                echo "FAIL"
                echo "$RESPONSE"
        fi
else
        echo "Error"
fi

...