diff --git a/defaults.inc b/defaults.inc index 2025c07..81515d2 100755 --- a/defaults.inc +++ b/defaults.inc @@ -5,7 +5,7 @@ VERS=2.3.11-01262024 DS_FOLDER=/opt/idssys/dsmon DS_CRONTAB_FOLDER=/opt/idssys/nodemgmt/crontabs -noheader=" gettsip-node get-crontab update report " +noheader=" gettsip-node get-crontab update report updatenodes " if [ "${NM_NODEMANAGER}" != "" ]; then diff --git a/dsmon.sh b/dsmon.sh index d4974b4..5ece6f2 100755 --- a/dsmon.sh +++ b/dsmon.sh @@ -365,8 +365,7 @@ RUNCMD(){ echo "Script Runtime: ${runtime}" echo } - -GETTSIP(){ +RUNCMD(){ start=`date +%s` declare -A host_ip @@ -378,20 +377,37 @@ GETTSIP(){ host_name[${hostid}]=$hostname fi done <<< $(MYSQL_PWD="sysmoninsert" mysql -h ${mysqlip} -u sysmoninsert -e "SELECT id,host,ip,limits FROM servermonitor.hosts WHERE disabled=0 ORDER BY host ASC") - # done <<< $(MYSQL_PWD="sysmoninsert" mysql -h ${mysqlip} -u sysmoninsert -e "SELECT id,host,ip,limits FROM servermonitor.hosts WHERE disabled=0 AND ip LIKE '%100.100.%' ORDER BY host ASC") for hostid in "${!host_ip[@]}"; do - echo -en "Checking ${host_name[$hostid]} [${host_ip[$hostid]}] ... " checkhost=$(CHECK_HOST ${host_ip[$hostid]}) if [ "${checkhost}" != "false" ]; then - # ssh -tq root@${host_ip[$hostid]} "dsmon update && dsmon gettsip-node" - ssh -tq root@${host_ip[$hostid]} "dsmon gettsip-node" + echo -e "${idsST[Bold]}${idsCL[LightCyan]} ${host_name[$hostid]} - Running command: ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11} ${12} ${13} ${14} ${15} ${16} ${17} ${18} ${19} ${20}${idsCL[Default]}${idsST[Reset]}" + ssh -tq root@${host_ip[$hostid]} ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11} ${12} ${13} ${14} ${15} ${16} ${17} ${18} ${19} ${20} else - echo -e "${idsST[Bold]}${idsCL[Red]} Timeout${idsCL[Default]}${idsST[Reset]}" + echo -e "${idsST[Bold]}${idsCL[Red]} ${host_name[$hostid]} - Timeout${idsCL[Default]}${idsST[Reset]}" fi - DIVIDER . green 40 done + echo + end=`date +%s` + runtime=$((end-start)) + echo "Script Runtime: ${runtime}" + echo +} + +UPDATENODES(){ + start=`date +%s` + + declare -A host_ip + declare -A host_name + + while read hostid hostname hostip hostlimits; do + if [ "$hostid" != "id" ]; then + echo -e "${idsCL[LightCyan]}Updating DSMON on '${hostname}'${idsCL[Default]}" + ssh -tq -o ConnectTimeout=1 -o ConnectionAttempts=1 root@$(echo $hostip | cut -d ";" -f1) "dsmon update" & + fi + done <<< $(MYSQL_PWD="sysmoninsert" mysql -h ${mysqlip} -u sysmoninsert -e "SELECT id,host,ip,limits FROM servermonitor.hosts WHERE disabled=0 ORDER BY host ASC") + echo end=`date +%s` runtime=$((end-start)) @@ -520,6 +536,7 @@ case ${ACTION} in run) RUN ${2};; runcmd) RUNCMD ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11};; update);; + updatenodes) UPDATENODES;; *) if [ "${ACTION}" == "hdd" ] || [ "${ACTION}" == "sys" ]; then RUN ${ACTION}