Merge pull request #2 from secure-diversITy/add-debug
add a debug mode for the CLI
This commit is contained in:
		
						commit
						650cf50aaa
					
				
					 2 changed files with 44 additions and 18 deletions
				
			
		| 
						 | 
					@ -1,12 +1,13 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
## /etc/icinga2/scripts/host-by-telegram.sh / 20170330
 | 
					## /etc/icinga2/scripts/host-by-telegram.sh / 20170330
 | 
				
			||||||
## Marianne M. Spiller <github@spiller.me>
 | 
					## Marianne M. Spiller <github@spiller.me>
 | 
				
			||||||
## Last updated 20170424
 | 
					## Last updated 20190722
 | 
				
			||||||
## Tested icinga2-2.6.3-1
 | 
					## Tested icinga2-2.10.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PROG="`basename $0`"
 | 
					PROG="`basename $0`"
 | 
				
			||||||
HOSTNAME="`hostname`"
 | 
					HOSTNAME="`hostname`"
 | 
				
			||||||
TRANSPORT="curl"
 | 
					TRANSPORT="curl"
 | 
				
			||||||
 | 
					unset DEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -z "`which $TRANSPORT`" ] ; then
 | 
					if [ -z "`which $TRANSPORT`" ] ; then
 | 
				
			||||||
  echo "$TRANSPORT not in \$PATH. Consider installing it."
 | 
					  echo "$TRANSPORT not in \$PATH. Consider installing it."
 | 
				
			||||||
| 
						 | 
					@ -36,13 +37,14 @@ And these are optional:
 | 
				
			||||||
  -c NOTIFICATIONCOMMENT (\$notification.comment$)
 | 
					  -c NOTIFICATIONCOMMENT (\$notification.comment$)
 | 
				
			||||||
  -i HAS_ICINGAWEB2 (\$icingaweb2url$, Default: unset)
 | 
					  -i HAS_ICINGAWEB2 (\$icingaweb2url$, Default: unset)
 | 
				
			||||||
  -v (\$notification_logtosyslog$, Default: false)
 | 
					  -v (\$notification_logtosyslog$, Default: false)
 | 
				
			||||||
 | 
					  -D DEBUG enable debug output - meant for CLI debug only
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exit 1;
 | 
					exit 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts 4:6::b:c:d:hi:l:n:o:p:q:r:s:t:u:v: opt
 | 
					while getopts 4:6::b:c:d:hi:l:n:o:p:q:r:s:t:u:v:D opt
 | 
				
			||||||
do
 | 
					do
 | 
				
			||||||
  case "$opt" in
 | 
					  case "$opt" in
 | 
				
			||||||
    4) HOSTADDRESS=$OPTARG ;;
 | 
					    4) HOSTADDRESS=$OPTARG ;;
 | 
				
			||||||
| 
						 | 
					@ -61,6 +63,7 @@ do
 | 
				
			||||||
    s) HOSTSTATE=$OPTARG ;;
 | 
					    s) HOSTSTATE=$OPTARG ;;
 | 
				
			||||||
    t) NOTIFICATIONTYPE=$OPTARG ;;
 | 
					    t) NOTIFICATIONTYPE=$OPTARG ;;
 | 
				
			||||||
    v) VERBOSE=$OPTARG ;;
 | 
					    v) VERBOSE=$OPTARG ;;
 | 
				
			||||||
 | 
					    D) DEBUG=1; echo -e "\n**********************************************\nWARNING: DEBUG MODE, DEACTIVATE ASAP\n**********************************************\n" ;;
 | 
				
			||||||
   \?) echo "ERROR: Invalid option -$OPTARG" >&2
 | 
					   \?) echo "ERROR: Invalid option -$OPTARG" >&2
 | 
				
			||||||
       Usage ;;
 | 
					       Usage ;;
 | 
				
			||||||
    :) echo "Missing option argument for -$OPTARG" >&2
 | 
					    :) echo "Missing option argument for -$OPTARG" >&2
 | 
				
			||||||
| 
						 | 
					@ -108,10 +111,20 @@ if [ "$VERBOSE" == "true" ] ; then
 | 
				
			||||||
  logger "$PROG sends $SUBJECT => Telegram Channel $TELEGRAM_BOT"
 | 
					  logger "$PROG sends $SUBJECT => Telegram Channel $TELEGRAM_BOT"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## debug output or not
 | 
				
			||||||
 | 
					if [ -z $DEBUG ];then
 | 
				
			||||||
 | 
					    CURLARGS="--silent --output /dev/null"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    CURLARGS=-v
 | 
				
			||||||
 | 
					    set -x
 | 
				
			||||||
 | 
					    echo -e "DEBUG MODE!"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## And finally, send the message
 | 
					## And finally, send the message
 | 
				
			||||||
/usr/bin/curl --silent --output /dev/null \
 | 
					/usr/bin/curl $CURLARGS \
 | 
				
			||||||
--data-urlencode "chat_id=${TELEGRAM_BOTID}" \
 | 
					    --data-urlencode "chat_id=${TELEGRAM_CHATID}" \
 | 
				
			||||||
    --data-urlencode "text=${NOTIFICATION_MESSAGE}" \
 | 
					    --data-urlencode "text=${NOTIFICATION_MESSAGE}" \
 | 
				
			||||||
    --data-urlencode "parse_mode=HTML" \
 | 
					    --data-urlencode "parse_mode=HTML" \
 | 
				
			||||||
    --data-urlencode "disable_web_page_preview=true" \
 | 
					    --data-urlencode "disable_web_page_preview=true" \
 | 
				
			||||||
    "https://api.telegram.org/bot${TELEGRAM_BOTTOKEN}/sendMessage"
 | 
					    "https://api.telegram.org/bot${TELEGRAM_BOTTOKEN}/sendMessage"
 | 
				
			||||||
 | 
					set +x
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,12 +1,13 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
## /etc/icinga2/scripts/service-by-telegram.sh / 20170330
 | 
					## /etc/icinga2/scripts/service-by-telegram.sh / 20170330
 | 
				
			||||||
## Marianne M. Spiller <github@spiller.me>
 | 
					## Marianne M. Spiller <github@spiller.me>
 | 
				
			||||||
## Last updated 20170424
 | 
					## Last updated 20190722
 | 
				
			||||||
## Tested icinga2-2.6.3-1
 | 
					## Tested icinga2-2.10.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PROG="`basename $0`"
 | 
					PROG="`basename $0`"
 | 
				
			||||||
HOSTNAME="`hostname`"
 | 
					HOSTNAME="`hostname`"
 | 
				
			||||||
TRANSPORT="curl"
 | 
					TRANSPORT="curl"
 | 
				
			||||||
 | 
					unset DEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -z "`which $TRANSPORT`" ] ; then
 | 
					if [ -z "`which $TRANSPORT`" ] ; then
 | 
				
			||||||
  echo "$TRANSPORT not in \$PATH. Consider installing it."
 | 
					  echo "$TRANSPORT not in \$PATH. Consider installing it."
 | 
				
			||||||
| 
						 | 
					@ -38,12 +39,13 @@ And these are optional:
 | 
				
			||||||
  -c NOTIFICATIONCOMMENT (\$notification.comment$)
 | 
					  -c NOTIFICATIONCOMMENT (\$notification.comment$)
 | 
				
			||||||
  -i HAS_ICINGAWEB2 (\$icingaweb2url$, Default: unset)
 | 
					  -i HAS_ICINGAWEB2 (\$icingaweb2url$, Default: unset)
 | 
				
			||||||
  -v (\$notification_logtosyslog$, Default: false)
 | 
					  -v (\$notification_logtosyslog$, Default: false)
 | 
				
			||||||
 | 
					  -D DEBUG enable debug output - meant for CLI debug only
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
exit 1;
 | 
					exit 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts 4:6:b:c:d:e:f:hi:l:n:o:p:q:r:s:t:u:v: opt
 | 
					while getopts 4:6:b:c:d:e:f:hi:l:n:o:p:q:r:s:t:u:v:D opt
 | 
				
			||||||
do
 | 
					do
 | 
				
			||||||
  case "$opt" in
 | 
					  case "$opt" in
 | 
				
			||||||
    4) HOSTADDRESS=$OPTARG ;;
 | 
					    4) HOSTADDRESS=$OPTARG ;;
 | 
				
			||||||
| 
						 | 
					@ -64,6 +66,7 @@ do
 | 
				
			||||||
    t) NOTIFICATIONTYPE=$OPTARG ;;
 | 
					    t) NOTIFICATIONTYPE=$OPTARG ;;
 | 
				
			||||||
    u) SERVICEDISPLAYNAME=$OPTARG ;;
 | 
					    u) SERVICEDISPLAYNAME=$OPTARG ;;
 | 
				
			||||||
    v) VERBOSE=$OPTARG ;;
 | 
					    v) VERBOSE=$OPTARG ;;
 | 
				
			||||||
 | 
					    D) DEBUG=1; echo -e "\n**********************************************\nWARNING: DEBUG MODE, DEACTIVATE ASAP\n**********************************************\n" ;;
 | 
				
			||||||
   \?) echo "ERROR: Invalid option -$OPTARG" >&2
 | 
					   \?) echo "ERROR: Invalid option -$OPTARG" >&2
 | 
				
			||||||
       Usage ;;
 | 
					       Usage ;;
 | 
				
			||||||
    :) echo "Missing option argument for -$OPTARG" >&2
 | 
					    :) echo "Missing option argument for -$OPTARG" >&2
 | 
				
			||||||
| 
						 | 
					@ -110,10 +113,20 @@ if [ "$VERBOSE" == "true" ] ; then
 | 
				
			||||||
  logger "$PROG sends $SUBJECT => Telegram Channel $TELEGRAM_BOT"
 | 
					  logger "$PROG sends $SUBJECT => Telegram Channel $TELEGRAM_BOT"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## debug output or not?
 | 
				
			||||||
 | 
					if [ -z $DEBUG ];then
 | 
				
			||||||
 | 
					    CURLARGS="--silent --output /dev/null"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    CURLARGS=-v
 | 
				
			||||||
 | 
					    set -x
 | 
				
			||||||
 | 
					    echo -e "DEBUG MODE!"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## And finally, send the message
 | 
					## And finally, send the message
 | 
				
			||||||
/usr/bin/curl --silent --output /dev/null \
 | 
					/usr/bin/curl $CURLARGS \
 | 
				
			||||||
--data-urlencode "chat_id=${TELEGRAM_BOTID}" \
 | 
					    --data-urlencode "chat_id=${TELEGRAM_CHATID}" \
 | 
				
			||||||
    --data-urlencode "text=${NOTIFICATION_MESSAGE}" \
 | 
					    --data-urlencode "text=${NOTIFICATION_MESSAGE}" \
 | 
				
			||||||
    --data-urlencode "parse_mode=HTML" \
 | 
					    --data-urlencode "parse_mode=HTML" \
 | 
				
			||||||
    --data-urlencode "disable_web_page_preview=true" \
 | 
					    --data-urlencode "disable_web_page_preview=true" \
 | 
				
			||||||
    "https://api.telegram.org/bot${TELEGRAM_BOTTOKEN}/sendMessage"
 | 
					    "https://api.telegram.org/bot${TELEGRAM_BOTTOKEN}/sendMessage"
 | 
				
			||||||
 | 
					set +x
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue