doortts doortts 2016-12-17
etc: Make is-alive-bot.sh more general purpose
@60610fdd779a5e5e22d9e6f47275f3eceed57ed1
is-alive-bot.sh
--- is-alive-bot.sh
+++ is-alive-bot.sh
@@ -13,12 +13,20 @@
 # USER_CHAT_ID=123456789
 USER_CHAT_ID=""
 
-# Yona Server
-# YONA_SERVER="http://my-yona-server.com"
-YONA_SERVER="http://127.0.0.1:9000"
+# TARGET_SERVER="http://my-yona-server.com"
+TARGET_SERVER="http://127.0.0.1:9000"
+
+CHECK_URL="$TARGET_SERVER/-_-api/v1/hello"
+
+EXPECTED_STATUS_CODE=200
 
 # Polling Time (sec)
 POLLING_TIME=60
+
+# Messages
+messageOnDown="Yona is unavaliable!"
+messageOnRevive="Yona comeback!"
+
 
 # Configurations end here...
 
@@ -32,6 +40,8 @@
         echo ""
         echo "ex>"
         echo "sh is-alive-bot.sh 328394984:AAFhL69afasfqjtUtIeRSzIagVYw7H3zF4"
+        echo ""
+        echo "See: https://core.telegram.org/bots#3-how-do-i-create-a-bot"
         exit 1
     fi
 else
@@ -44,6 +54,8 @@
         then
         echo "---------------------------------------------------"
         echo "Find chat id of user or group with your own eyes.. "
+        echo ""
+        echo "..chat\":{ \"id\": 621884 ...  <= user or group id!"
         echo "---------------------------------------------------"
         echo ""
         curl -sL https://api.telegram.org/bot$API_TOKEN/getUpdates
@@ -63,15 +75,11 @@
 
 ### preparing for message and server status check
 
-message=""
-messageOnDown="Yona is unavaliable!"
-messageOnRevive="Yona comeback!"
-
 sendMessageToTelegram() {
   curl -s \
     -X POST \
     https://api.telegram.org/bot$API_TOKEN/sendMessage \
-    -d text="$message" \
+    -d text="$1" \
     -d chat_id=$USER_CHAT_ID > /dev/null
 }
 
@@ -82,29 +90,26 @@
 echo "Monitoring started... $(date +%Y-%m-%d" "%H:%M:%S)"
 echo ""
 
-message="Monitoring started... - $YONA_SERVER"
-sendMessageToTelegram
+sendMessageToTelegram "Monitoring started... - $TARGET_SERVER"
 
 while true
 do
     NOW=$(date +%Y-%m-%d" "%H:%M:%S)
-    curl -sL -H "Accept: application/json" $YONA_SERVER/-_-api/v1/hello | grep "\"ok\":true" > /dev/null
-    if [ $? != 0 ]
+    response=$(curl -I $CHECK_URL 2> /dev/null | head -n 1 | cut -d$' ' -f2)
+    if [ -z $response ] || [ $response != $EXPECTED_STATUS_CODE ]
         then
             if [ $isDown == false ] 
                 then
                     echo "Sending message - $messageOnDown - $NOW" 
                     isDown=true
-                    message="$messageOnDown - $YONA_SERVER"
-                    sendMessageToTelegram
+                    sendMessageToTelegram "$messageOnDown $response - $TARGET_SERVER"
             fi
         else
             if [ $isDown == true ] 
                 then
                 echo "Sending message - $messageOnRevive - $NOW" 
                 isDown=false
-                message="$messageOnRevive - $YONA_SERVER"
-                sendMessageToTelegram
+                sendMessageToTelegram "$messageOnRevive - $TARGET_SERVER"
             fi
     fi
     sleep $POLLING_TIME
Add a comment
List