update
This commit is contained in:
@@ -1,6 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
VERS='4.7.153-07022023'
|
||||
|
||||
# NODETYPES=WEB
|
||||
NODETYPES=LB,LPD,MM,MYSQL,NC,PW,WPD,WM,WEB
|
||||
@@ -43,21 +40,6 @@ WEB_SINGLESRVR_IP=10.10.1.20
|
||||
LB_NGINX_SITES='/opt/lb-data/nginx/sites-enabled'
|
||||
WEB_NGINX_SITES='/mnt/web-data/nginx/sites-enabled'
|
||||
|
||||
noheader=' service status-check nightlyrephp7.3-fpm,new backup report check checkcerts gitea update-nodes copynpmcerts singleservercheck update-dyndns '
|
||||
CERT_DAEMON='/snap/bin/certbot'
|
||||
FOLDER=/opt/idssys/nodemgmt
|
||||
SCRIPT=${FOLDER}/nodemgmt-scripts.sh
|
||||
TMPFOLDER=${FOLDER}/.tmp
|
||||
LOGFOLDER=${FOLDER}/logs
|
||||
LOGFILE=${LOGFOLDER}/logfile
|
||||
|
||||
RENOTIFY=1800
|
||||
|
||||
[ ! -d ${TMPFOLDER} ] && mkdir ${TMPFOLDER}
|
||||
[ ! -d ${LOGFOLDER} ] && mkdir ${LOGFOLDER}
|
||||
|
||||
|
||||
NM_SRVCOPT=(start stop restart reload enable disable)
|
||||
|
||||
#MYSQL_REPL_CHECK=( )
|
||||
#WEB_REPL_CHECK=(nginx www ssl lessh php pma pdnsa)
|
||||
@@ -92,43 +74,6 @@ NM_HOSTNAMES['54.213.11.227']='WAN-DNS-Node2 (West)'
|
||||
NM_HOSTNAMES['10.10.1.28']='WAN-DNS-Node3 (Home)'
|
||||
NM_HOSTNAMES['44.214.59.192']='WAN-Monitor-Node1'
|
||||
|
||||
declare -i errtime
|
||||
|
||||
IFS=,
|
||||
NODE_TYPES=(${NODETYPES})
|
||||
MYSQL_HOSTS=(${MYSQLHOSTS})
|
||||
WEB_HOSTS=(${WEBHOSTS})
|
||||
LB_HOSTS=(${LBHOSTS})
|
||||
NC_HOSTS=(${NCHOSTS})
|
||||
WPD_HOSTS=(${WPDHOSTS})
|
||||
LPD_HOSTS=(${LPDHOSTS})
|
||||
MM_HOSTS=(${MMHOSTS})
|
||||
GL_HOSTS=(${GLHOSTS})
|
||||
PW_HOSTS=(${PWHOSTS})
|
||||
WM_HOSTS=(${WMHOSTS})
|
||||
|
||||
NODE_SERVICES=(${NODESERVICES})
|
||||
MYSQL_SERVICES_CHECK=(${MYSQLSERVICES_CHECK})
|
||||
WEB_SERVICES_CHECK=(${WEBSERVICES_CHECK})
|
||||
LB_SERVICES_CHECK=(${LBSERVICES_CHECK})
|
||||
NC_SERVICES_CHECK=(${NCSERVICES_CHECK})
|
||||
WPD_SERVICES_CHECK=(${WPDSERVICES_CHECK})
|
||||
LPD_SERVICES_CHECK=(${LPDSERVICES_CHECK})
|
||||
MM_SERVICES_CHECK=(${MMSERVICES_CHECK})
|
||||
PW_SERVICES_CHECK=(${PWSERVICES_CHECK})
|
||||
WM_SERVICES_CHECK=(${WMSERVICES_CHECK})
|
||||
LOCAL_SERVICES=(${LOCAL_SERVICES})
|
||||
|
||||
WEB_DOCKER=(${WEBDOCKER})
|
||||
LB_DOCKER=(${LBDOCKER})
|
||||
WM_DOCKER=(${WMDOCKER})
|
||||
PW_DOCKER=(${PWDOCKER})
|
||||
|
||||
WEB_SINGLESRVR_SERVICES=(${WEB_SINGLESRVRSERVICES})
|
||||
WEB_SINGLESRVR_DOCKERS=(${WEB_SINGLESRVRDOCKERS})
|
||||
|
||||
unset IFS
|
||||
|
||||
declare -A NM_NODETYPES
|
||||
NM_NODETYPES['MYSQL']='MySQL'
|
||||
NM_NODETYPES['LB']='LoadBalance'
|
||||
@@ -209,7 +154,6 @@ NM_SRVCOPTS['enable']='Enabl'
|
||||
NM_SRVCOPTS['disable']='Disabl'
|
||||
NM_SRVCOPTS['daemon-reload']='Daemon-Reload'
|
||||
|
||||
|
||||
declare -A REPL_CHECKS
|
||||
REPL_CHECKS['apache']='/etc/apache2'
|
||||
REPL_CHECKS['nginx']='/mnt/web-data/nginx'
|
||||
@@ -256,90 +200,6 @@ BACKUP_ITEMS[fail2ban]=/etc/fail2ban
|
||||
|
||||
|
||||
|
||||
GET-CHECKCERT-DOMAINS(){
|
||||
declare -A CHECKCERT_DOMAINS
|
||||
IFS=$'\n'
|
||||
for LINE in `egrep -v '(^#|^$)' ${FOLDER}/ssl-cert-check/ssldomains`; do
|
||||
HOST=${LINE%% *}
|
||||
PORT=${LINE#* }
|
||||
IFS=" "
|
||||
CHECKCERT_DOMAINS[${HOST}]=${PORT}
|
||||
done
|
||||
unset IFS
|
||||
}
|
||||
|
||||
DISP_HEADER(){
|
||||
declare -i cw; declare -i spc1; declare -i c
|
||||
if [ "$1" = true ]; then
|
||||
clear
|
||||
fi
|
||||
echo
|
||||
echo -e "${idsCL[LightGreen]} NodeMgmt - Node Monitoring & Management${idsCL[Default]} ${idsCL[DarkGray]}(ver-${VERS})${idsCL[Default]}"
|
||||
DIVIDER . lightGreen
|
||||
if [ "$2" = true ]; then
|
||||
echo -e " Node hostname : ${idsST[Bold]}${idsCL[LightCyan]}${NODE_HOSTNAME}${idsCL[Default]}${idsST[Reset]}"
|
||||
if [ -z ${LOCAL_SERVICES+x} ]; then SERVICES=$( IFS=$','; echo "${NODE_SERVICES[*]}" )
|
||||
else SERVICES=$( IFS=$','; echo "${LOCAL_SERVICES[*]}" )
|
||||
fi
|
||||
IFS=,; SERVICES2=(${SERVICES}); unset IFS
|
||||
for srvc in "${SERVICES2[@]}"; do
|
||||
c=0; cw=18; spc=''
|
||||
spc1=${cw}-${#NM_SERVICES[${srvc}]}
|
||||
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||
echo -en " ${NM_SERVICES[${srvc}]}$spc: "
|
||||
if [ $(pgrep ${srvc} | wc -l) -gt "0" ]; then
|
||||
echo -e "${idsCL[Green]}Running${idsCL[Default]}"
|
||||
else echo -e "${idsCL[Red]}Not Running${idsCL[Default]}"
|
||||
fi
|
||||
done
|
||||
DIVIDER
|
||||
if [ $(ls -1 ${FOLDER}/*.lastrun 2>/dev/null | wc -l) != 0 ];then
|
||||
echo -e "${idsST[Bold]}Lastrun Items:${idsST[Reset]}"
|
||||
for lastrun in ${FOLDER}/*.lastrun ; do
|
||||
IFS='/'; lastrun_item=(${lastrun}); unset IFS
|
||||
lastrun_item=$(echo ${lastrun_item[4]} | sed "s/.lastrun//g")
|
||||
lastrun_item=$(echo ${lastrun_item} | sed "s/-/ /g")
|
||||
lastrun_date=$(stat -c %y ${lastrun})
|
||||
IFS=' '; lastrun_date=(${lastrun_date}); unset IFS
|
||||
IFS='.'; lastrun_time=(${lastrun_date[1]}); unset IFS
|
||||
c=0; cw=18; spc=''
|
||||
spc1=${cw}-${#lastrun_item}
|
||||
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||
echo -e " ${lastrun_item~}${spc}: ${lastrun_date[0]} ${lastrun_time}"
|
||||
done
|
||||
|
||||
DIVIDER
|
||||
fi
|
||||
fi
|
||||
echo
|
||||
}
|
||||
|
||||
CERT-CHECK(){
|
||||
TARGET="mysite.example.net";
|
||||
RECIPIENT="hostmaster@mysite.example.net";
|
||||
DAYS=7;
|
||||
echo "checking if $TARGET expires in less than $DAYS days";
|
||||
expirationdate=$(date -d "$(: | openssl s_client -connect $TARGET:443 -servername $TARGET 2>/dev/null \
|
||||
| openssl x509 -text \
|
||||
| grep 'Not After' \
|
||||
|awk '{print $4,$5,$7}')" '+%s');
|
||||
in7days=$(($(date +%s) + (86400*$DAYS)));
|
||||
if [ $in7days -gt $expirationdate ]; then
|
||||
echo "KO - Certificate for $TARGET expires in less than $DAYS days, on $(date -d @$expirationdate '+%Y-%m-%d')" \
|
||||
| mail -s "Certificate expiration warning for $TARGET" $RECIPIENT ;
|
||||
else
|
||||
echo "OK - Certificate expires on $expirationdate";
|
||||
fi
|
||||
}
|
||||
|
||||
SENDNOTICE(){
|
||||
[ "${PUSHOVER_APP_TOKEN}" != "" ] && PUSH_TO_MOBILE "${2}
|
||||
|
||||
$(date)" "${1}" ${3} &
|
||||
|
||||
[ "${EMAIL_NOTICE}" != "" ] && echo -e "${1}\n\n$(date)" | mail -s "${2}" ${EMAIL_NOTICE}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user