From 9a271f98a73ac3dad19b9bc65e33d3865099c2ec Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Tue, 5 Dec 2023 23:28:01 -0600 Subject: [PATCH] update --- defaults.inc | 2 +- nodemgmt-scripts.sh | 53 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/defaults.inc b/defaults.inc index 03ad85ce..d5d17221 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,5 +1,5 @@ #!/usr/bin/env bash -VERS='4.17.110-12052023' +VERS='4.17.111-12052023' NM_BETA=false noheader=' service status-check nightlyrephp7.3-fpm,new backup report check checkcerts gitea update-nodes copynpmcerts singleservercheck update-dyndns backup-offsitepfsense gui nightlyreview update log betacheck ' diff --git a/nodemgmt-scripts.sh b/nodemgmt-scripts.sh index 0d5e4551..c2b834b6 100755 --- a/nodemgmt-scripts.sh +++ b/nodemgmt-scripts.sh @@ -865,8 +865,57 @@ GUI(){ DOWNLIST ${2} ;; statusnew) - STATUSNEW ${2} ${3} - ;; + if [ "${2}" == "freespace" ]; then + STATUSNEW freespace ${3} + else + if [ -f "${NM_TMPFOLDER}/status-check.running" ] && [ $(expr `date +%s` - $(stat -c %Y ${NM_TMPFOLDER}/status-check.running)) -gt 1800 ]; then + # if [ -f "${NM_TMPFOLDER}/status-check.running" ]; then + SENDNOTICE "Nodemgmt Script Error" "Status monitoring stuck, system resetting... fix yo shit" + mv -f ${NM_TMPFOLDER}/status-check.running ${NM_TMPFOLDER}/status-check.running.crash + getStuckNM=$(pgrep -f '/nodemgmt') + for i in $getStuckNM; do + [ "$BASHPID" != "$i" ] && /bin/kill -9 $i + done + fi + + if [ ! -f "${NM_TMPFOLDER}/status-check.running" ]; then + touch "${NM_TMPFOLDER}/status-check.running" + if [ "${2}" == "report" ]; then + # start_status=`date +%s` + echo "$(date +%Y-%m-%d-%H-%M-%S) - LOCAL - ${NODE_HOSTNAME} - Starting Status Check" >> ${NM_LOGFILE} + echo -e "$(date +%Y-%m-%d-%H-%M-%S) - Starting status check #############################\n" > ${NM_TMPFOLDER}/status-check.running + STATUS report ${3} >> ${NM_TMPFOLDER}/status-check.running + echo -e "\n\n$(date) - Finished status check #############################\n" >> ${NM_TMPFOLDER}/status-check.running + echo "$(date +%Y-%m-%d-%H-%M-%S) - LOCAL - ${NODE_HOSTNAME} - Completed Status Check" >> ${NM_LOGFILE} + + rm -f ${NM_LOGFOLDER}/status-check.new.lastrun + mv ${NM_TMPFOLDER}/status-check.running ${NM_LOGFOLDER}/status-check.new.lastrun + + # end_status=`date +%s` + # runtime_status=$((end_status-start_status)) + # echo -e "\nRuntime: ${runtime_status}" >> ${NM_LOGFOLDER}/status-check.lastrun + + if [ "${3}" == "email" ]; then + echo -e "\n\n" >> ${NM_LOGFOLDER}/status-check.new.lastrun + DOWNLIST report >> ${NM_LOGFOLDER}/status-check.new.lastrun + STATUSLOG="$(cat ${NM_LOGFOLDER}/status-check.new.lastrun)" + SENDNOTICE "Status Report" "Status Report\n${STATUSLOG}" + fi + else + STATUSNEW ${2} ${3} + fi + else + # echo -e "${idsCL[LightYellow]}Status check already running, please wait and try again${idsCL[Default]}" + echo -e "${idsCL[LightYellow]}Status checks are already running${idsCL[Default]}" + echo -en "${idsCL[LightCyan]}View the (L)ive log, or the (P)revious run log instead? ${idsCL[Default]}" + read -n1 choice + case $choice in + [Ll]) watch -n1 tail -n35 ${NM_TMPFOLDER}/status-check.running; echo;; + [Pp]) echo; cat ${NM_LOGFOLDER}/status-check.new.lastrun;; + esac + echo + fi + fi;; status) if [ "${2}" == "freespace" ]; then STATUS freespace ${3}