diff --git a/dsmon.sh b/dsmon.sh index 712955d..7a7291d 100755 --- a/dsmon.sh +++ b/dsmon.sh @@ -134,33 +134,34 @@ CHECK(){ for hostname in "${hostnames_sort[@]}"; do until [ $(ls /tmp/dscheck.*.running 2>/dev/null | wc -l) -lt 6 ]; do tmp=tmp; done # RUN_CHECK ${hostname} > /tmp/dscheck.${hostname}.results 2>/dev/null & - RUN_CHECK + RUN_CHECK ${hostname} 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 - # 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