#! /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