From 6d601ac73aaa02823802913e5161cda6ba30343c Mon Sep 17 00:00:00 2001 From: Jonny007-MKD Date: Mon, 19 Oct 2020 21:16:10 +0200 Subject: [PATCH] Prettier timestamp --- host-by-telegram.sh | 50 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/host-by-telegram.sh b/host-by-telegram.sh index 322d5e4..34f1026 100755 --- a/host-by-telegram.sh +++ b/host-by-telegram.sh @@ -87,23 +87,50 @@ do esac done -## Build the message's subject -SUBJECT="[$NOTIFICATIONTYPE] $SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is $SERVICESTATE!" + +# convert date +dateInSec=$(date -d "$LONGDATETIME" +%s) +nowInSec=$(date +%s) +ageInSec=$(($nowInSec - $dateInSec)) +ageInMin=$(($ageInSec/60)) +ageInHours=$(($ageInMin/60)) +ageInDays=$(($ageInHours/24)) +if [ "${LONGDATETIME:0:10}" == "$(date +"%Y-%m-%d")" ]; then + LONGDATETIME="${LONGDATETIME:11}" +fi + +date=${LONGDATETIME#} +if [ $ageInDays -gt 0 ]; then + age="${ageInDays}d $(($ageInHours-$ageInDays*24))h ($LONGDATETIME)" +elif [ $ageInHours -gt 0 ]; then + age="${ageInHours}h $(($ageInMin-$ageInHours*60))min ($LONGDATETIME)" +elif [ $ageInMin -gt 0 ]; then + age="${ageInMin}min $(($ageInSec-$ageInMin*60))s" +elif [ $ageInSec -gt 5 ]; then + age="${ageInSec}s" +else + age="$LONGDATETIME" +fi + +if [ "$HOSTALIAS" == "$HOSTDISPLAYNAME" ]; then + HOSTALIAS2="" +else + HOSTALIAS2=" ($HOSTALIAS)" +fi ## Build the message itself NOTIFICATION_MESSAGE=$(cat << EOF -$HOSTDISPLAYNAME ($HOSTALIAS) is $HOSTSTATE! -When? $LONGDATETIME -Info? $HOSTOUTPUT -Host? $HOSTALIAS -IPv4? $HOSTADDRESS +$HOSTDISPLAYNAME$HOSTALIAS2 is $HOSTSTATE! +Since $age +Info $HOSTOUTPUT +IPv4 $HOSTADDRESS EOF ) ## Is this host IPv6 capable? if [ -n "$HOSTADDRESS6" ] ; then NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE -IPv6? $HOSTADDRESS6" +IPv6 $HOSTADDRESS6" fi ## Are there any comments? Put them into the message! if [ -n "$NOTIFICATIONCOMMENT" ] ; then @@ -114,14 +141,13 @@ fi ## Are we using Icinga Web 2? Put the URL into the message! if [ -n "$HAS_ICINGAWEB2" ] ; then NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE -Get live status: - $HAS_ICINGAWEB2/monitoring/host/show?host=$HOSTALIAS" +Icinga Web" fi -## Build the message's subject -SUBJECT="[$NOTIFICATIONTYPE] Host $HOSTDISPLAYNAME is $HOSTSTATE!" ## Are we verbose? Then put a message to syslog... if [ "$VERBOSE" == "true" ] ; then + ## Build the message's subject + SUBJECT="[$NOTIFICATIONTYPE] Host $HOSTDISPLAYNAME is $HOSTSTATE!" logger "$PROG sends $SUBJECT => Telegram Channel $TELEGRAM_BOT" fi