diff --git a/dsmon.sh b/dsmon.sh index 01e1771..e0fe7d6 100755 --- a/dsmon.sh +++ b/dsmon.sh @@ -141,30 +141,30 @@ CHECK(){ done [ "${1}" != "report" ] && echo -e "${idsCL[LightGreen]}Done${idsCL[Default]}\n" - # nc_count=0; completed=false; scanstart=$(date +%s) - # until [ "${completed}" == "true" ]; do - # # until [ $(ls /tmp/dscheck.*.done 2>/dev/null | wc -l) -gt 0 ]; do tmp=tmp; done - # for host in /tmp/dscheck.*.done; do - # NTS=$(grep -oP '(?<=dscheck.).*?(?=.done)' <<< "${host}") - # if [ "${NTS}" != "*" ]; then - # hoststatus=$(cat /tmp/dscheck.${NTS}.results) - # [ "${hoststatus}" != "" ] && echo -e "${hoststatus}" - # #rm -f /tmp/dscheck.${NTS}.* - # ((nc_count++)) - # fi - # done - # if [ $(($(date +%s)-scanstart)) -gt 300 ]; then - # SENDNOTICE "DSmon Scan Stuck" "DSmon Check scan has been running for 10mins, klling all bash...." 1 - # killall bash - # pw service all restart - # exit 1 - # fi - # if [ ${nc_count} -eq ${#hostnames_sort[@]} ]; then - # completed=true - # break - # fi - # sleep 1s - # done + nc_count=0; completed=false; scanstart=$(date +%s) + until [ "${completed}" == "true" ]; do + # until [ $(ls /tmp/dscheck.*.done 2>/dev/null | wc -l) -gt 0 ]; do tmp=tmp; done + for host in /tmp/dscheck.*.done; do + NTS=$(grep -oP '(?<=dscheck.).*?(?=.done)' <<< "${host}") + if [ "${NTS}" != "*" ]; then + hoststatus="$(cat /tmp/dscheck.${NTS}.results)" + [ "${hoststatus}" != "" ] && echo -e "${hoststatus}" + rm -f /tmp/dscheck.${NTS}.* + ((nc_count++)) + fi + done + if [ $(($(date +%s)-scanstart)) -gt 300 ]; then + SENDNOTICE "DSmon Scan Stuck" "DSmon Check scan has been running for 10mins, klling all bash...." 1 + killall bash + pw service all restart + exit 1 + fi + if [ ${nc_count} -eq ${#hostnames_sort[@]} ]; then + completed=true + break + fi + sleep 1s + done end=`date +%s`; runtime=$((end-start)); echo -e "\nScript Runtime: ${runtime}" echo