diff --git a/dsmon.sh b/dsmon.sh index 87a3036..ac429f2 100755 --- a/dsmon.sh +++ b/dsmon.sh @@ -96,6 +96,8 @@ RUN(){ CHECK(){ start=`date +%s` + + C_CW=40 declare -A host_ip declare -A host_name @@ -110,6 +112,9 @@ CHECK(){ idsST=('') fi + MSG="Determining hosts and preparing" + c=0; cw=${C_CW}; spc=''; spc1=${cw}-${#MSG}; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done + echo -en "${idsCL[LightCyan]}${MSG}${spc}: " while read hostid hostname hostip hostlimits; do if [ "$hostid" != "id" ]; then hostip=$(echo $hostip | cut -d ";" -f1) @@ -121,18 +126,23 @@ CHECK(){ hostnames_sort+=("$hostname") fi done <<< $(MYSQL_PWD="sysmoninsert" mysql -h ${mysqlip} -u sysmoninsert -e "SELECT id,host,ip,limits FROM servermonitor.hosts WHERE disabled=0") - # done <<< $(MYSQL_PWD="sysmoninsert" mysql -h ${mysqlip} -u sysmoninsert -e "SELECT id,host,ip,limits FROM servermonitor.hosts WHERE disabled=0 AND host LIKE '%WAN%'") - + # done <<< $(MYSQL_PWD="sysmoninsert" mysql -h ${mysqlip} -u sysmoninsert -e "SELECT id,host,ip,limits FROM servermonitor.hosts WHERE disabled=0 AND host LIKE '%WAN%'") IFS=$'\n' hostnames_sort=($(sort <<<"${hostnames_sort[*]}")); unset IFS + echo -e "${idsCL[LightGreen]}Done${idsCL[Default]}" + MSG="Starting jobs to collect host info" + c=0; cw=${C_CW}; spc=''; spc1=${cw}-${#MSG}; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done + echo -en "${idsCL[LightCyan]}${MSG}${spc}: " #for hostid in "${!host_ip[@]}"; do for hostname in "${hostnames_sort[@]}"; do RUN_CHECK ${hostname} > /tmp/dscheck.${hostname}.results 2>/dev/null & done + echo -e "${idsCL[LightGreen]}Done${idsCL[Default]}" + echo nc_count=0; completed=false; scanstart=$(date +%s) until [ "${completed}" == "true" ]; do - for host in /tmp/dscheck.*.done; do + for host in /tmp/dscheck.*.done >/dev/null 2>&1; do NTS=$(grep -oP '(?<=dscheck.).*?(?=.done)' <<< "${nodestatus}") if [ "${NTS}" != "*" ]; then hoststatus=$(cat /tmp/dscheck.${NTS}.results)