notification/templates/sendtelegram-reboot.sh

128 lines
2.3 KiB
Bash

#! /bin/sh
# chkconfig: 2345 20 80
### BEGIN INIT INFO
# Provides: sendtelegram-reboot
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Sending a message on startup
### END INIT INFO
start() {
API_URL="$(grep "API_URL=" /usr/local/bin/sendtelegram.config | cut -d= -f2)"
SILENCE="$(grep "SILENCE=" /usr/local/bin/sendtelegram.config | cut -d= -f2)"
CHAT_ID="$(grep "CHAT_ID=" /usr/local/bin/sendtelegram.config | cut -d= -f2)"
THRD_ID="$(grep "THRD_ID=" /usr/local/bin/sendtelegram.config | cut -d= -f2)"
TXT_MSG="[System States] $(cat /etc/hostname): OS has been rebooted"
REL=$(grep 'PRETTY_NAME' /etc/os-release | cut -d= -f2)
if [ -n "${REL}" ]; then
TXT_MSG=$(cat <<-END
${TXT_MSG}
--- RELEASE:
${REL}
END
)
fi
KER=$(uname -srm)
if [ -n "${KER}" ]; then
TXT_MSG=$(cat <<-END
${TXT_MSG}
--- KERNEL:
${KER}
END
)
fi
NET=$(ip a | grep 'inet' | grep -v -e '127.0.0.1/8' -e '::1/128' \
| awk '{print $2}')
if [ -n "${NET}" ]; then
TXT_MSG=$(cat <<-END
${TXT_MSG}
--- NETWORK:
${NET}
END
)
fi
CPU=$(grep 'model name' /proc/cpuinfo | cut -d':' -f2- | cut -d' ' -f2-)
if [ -n "${CPU}" ]; then
TXT_MSG=$(cat <<-END
${TXT_MSG}
--- CPUs:
${CPU}
END
)
fi
MEM=$(grep /proc/meminfo \
-e 'MemTotal' -e 'MemAvailable' -e 'MemFree' \
-e 'SwapTotal' -e 'SwapFree' \
| numfmt --field 2 --to=iec | sed 's/M/G/g' | sed 's/ kB//g')
if [ -n "${MEM}" ]; then
TXT_MSG=$(cat <<-END
${TXT_MSG}
--- MEMORY:
${MEM}
END
)
fi
DRI=$(LC_ALL=en_US.UTF-8 df -h --output=source,fstype,size,pcent,target \
-x tmpfs -x devtmpfs -x squashfs)
if [ -n "${DRI}" ]; then
TXT_MSG=$(cat <<-END
${TXT_MSG}
--- DRIVES:
${DRI}
END
)
fi
sleep 15
if [ -z "${THRD_ID}" ]; then
curl -s -o /dev/null -X POST \
-d chat_id="${CHAT_ID}" \
-d text="${TXT_MSG}" \
-d disable_notification="${SILENCE}" \
"${API_URL}"
else
curl -s -o /dev/null -X POST \
-d chat_id="${CHAT_ID}" \
-d text="$TXT_MSG" \
-d disable_notification="${SILENCE}" \
-d message_thread_id="$THRD_ID" \
"${API_URL}"
fi
}
stop() {
pkill -f "curl -s -o /dev/null -X POST -d chat_id=${CHAT_ID}"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
printf "%s\n" "Usage: $0 {start|stop|restart}"
esac
exit 0