From 642b1bb105cda6e7f631010927160e49dca5a02f Mon Sep 17 00:00:00 2001 From: Pavel Muhortov Date: Sun, 24 Dec 2023 15:15:03 +0300 Subject: [PATCH] info about reboot extended --- templates/sendmail-reboot.sh | 133 ++++++++++++++++++++++++------- templates/sendtelegram-reboot.sh | 75 ++++++++++++++++- 2 files changed, 176 insertions(+), 32 deletions(-) diff --git a/templates/sendmail-reboot.sh b/templates/sendmail-reboot.sh index 97eca9f..f06c064 100644 --- a/templates/sendmail-reboot.sh +++ b/templates/sendmail-reboot.sh @@ -2,43 +2,116 @@ # chkconfig: 2345 20 80 ### BEGIN INIT INFO -# Provides: sendmail-reboot -# Required-Start: $all -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: -# Short-Description: Sending a message on startup +# Provides: sendmail-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() { - sleep 30 - python3 /usr/local/bin/sendmail.py \ - --smtp "$(cat /usr/local/bin/sendmail.config | grep "smtp=" | cut -d= -f2)" \ - -u "$(cat /usr/local/bin/sendmail.config | grep "from=" | cut -d= -f2)" \ - -p "$(cat /usr/local/bin/sendmail.config | grep "pass=" | cut -d= -f2)" \ - -d "$(cat /usr/local/bin/sendmail.config | grep "dest=" | cut -d= -f2)" \ - --subj "[System States] $(cat /etc/hostname): computer has been rebooted" \ - --text "$(w)" \ - >> /dev/null 2>&1 & + 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 --from-unit=Ki --to=iec | 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 + python3 /usr/local/bin/sendmail.py \ + --smtp "$(grep "smtp=" /usr/local/bin/sendmail.config | cut -d= -f2)" \ + -u "$(grep "from=" /usr/local/bin/sendmail.config | cut -d= -f2)" \ + -p "$(grep "pass=" /usr/local/bin/sendmail.config | cut -d= -f2)" \ + -d "$(grep "dest=" /usr/local/bin/sendmail.config | cut -d= -f2)" \ + --subj "[System States] $(cat /etc/hostname): OS has been rebooted" \ + --text "${TXT_MSG}" \ + >> /dev/null 2>&1 & } stop() { - pkill -f /usr/local/bin/sendmail.py + pkill -f /usr/local/bin/sendmail.py } -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - stop - start - ;; - *) - echo "Usage: $0 {start|stop|restart}" +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + *) + printf "%s\n" "Usage: $0 {start|stop|restart}" esac -exit 0 \ No newline at end of file +exit 0 diff --git a/templates/sendtelegram-reboot.sh b/templates/sendtelegram-reboot.sh index 7437d67..5c424a4 100644 --- a/templates/sendtelegram-reboot.sh +++ b/templates/sendtelegram-reboot.sh @@ -15,7 +15,78 @@ start() { 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): computer has been rebooted" + 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 --from-unit=Ki --to=iec | 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 @@ -35,7 +106,7 @@ start() { } stop() { - pkill -f curl -s -o /dev/null -X POST -d chat_id="${CHAT_ID}" + pkill -f "curl -s -o /dev/null -X POST -d chat_id=${CHAT_ID}" } case "$1" in