diff --git a/dsmon.sh b/dsmon.sh index aca0fe7..a03df14 100755 --- a/dsmon.sh +++ b/dsmon.sh @@ -84,7 +84,7 @@ CHECK(){ declare -A host_ip declare -A host_name declare -A host_limits - declare -A hostnames + declare -A host_ids declare -a hostnames_sort while read hostid hostname hostip hostlimits; do @@ -94,65 +94,63 @@ CHECK(){ host_ip[${hostid}]=$hostip host_name[${hostid}]=$hostname host_limits[${hostid}]=$hostlimits - hostnames[$hostname]=$hostid; hostnames_sort+=("$hostname") + host_ids[$hostname]=$hostid + hostnames_sort+=("$hostname") fi done <<< $(MYSQL_PWD="sysmoninsert" mysql -h mysqldb.scity.us -P 3306 -u sysmoninsert -e "SELECT id,host,ip,limits FROM servermonitor.hosts") IFS=$'\n' hostnames_sort=($(sort <<<"${hostnames_sort[*]}")) unset IFS - for x in "${!hostnames[@]}"; do printf "[%s]=%s\n" "$x" "${hostnames[$x]}" ; done - echo - for x in "${!hostnames_sort[@]}"; do printf "[%s]=%s\n" "$x" "${hostnames_sort[$x]}" ; done - - - # for hostid in "${!host_ip[@]}"; do - # echo -e "${idsST[Bold]}"; DIVIDER - # echo -e "${idsCL[LightCyan]} ${host_name[$hostid]} - Drive Space Check${idsCL[Default]}" - # DIVIDER; echo -e "${idsST[Reset]}" - # - # checkhost=$(CHECK_HOST ${host_ip[$hostid]}) - # if [ "${checkhost}" != "false" ]; then - # DRIVEINFO=$(ssh root@${host_ip[$hostid]} df -BM | grep -vE '^Filesystem|tmpfs|cdrom|@|ram|loop|udev|veeamimage|nvme|localhost|sda|sdb|shm|mmcblk|overlay|-volume|Music|media-data|Software' | awk '{ print $1 " " $2 " " $4 }') - # DRIVEINFO=(${DRIVEINFO}) - # NUMDRIVES=$((${#DRIVEINFO[@]} / 3)) - # - # for ((i = 0 ; i <= $((${NUMDRIVES}-1)) ; i++)); do - # ii=$((${i}*3)) - # dname=${DRIVEINFO[${ii}]} - # dtot=$(bc <<< "scale=2; ${DRIVEINFO[$((${ii}+1))]}/1024/10") - # dfree=$(bc <<< "scale=2; ${DRIVEINFO[$((${ii}+2))]}/1024/10") - # dfreeper=$(printf "%0.2f" $(jq -n ${dfree}/${dtot}*100)) - # dname=${dname//\/dev\/mapper\//} - # dname=${dname//\/dev\//} - # - # if (( $(bc <<<"$dfreeper <= 15") )); then - # fs_status='error' - # fs_status_color='Red' - # if [ "${ALERT_EMAIL}" != "" ]; then echo -e "${host_name[$hostid]} - (${host_ip[$hostid]})\n${dname} : ${dfree} GB free\t$(date)" | mail -s "Free Space Critical: '${host_name[$hostid]}'" ${ALERT_EMAIL}; fi - # - # elif (( $(bc <<<"$dfreeper <= 25") )); then - # fs_status='warn' - # fs_status_color='Yellow' - # if [ "${ALERT_EMAIL}" != "" ]; then echo -e "${host_name[$hostid]} - (${host_ip[$hostid]})\n${dname} : ${dfree} GB free\t$(date)" | mail -s "Free Space Warning: '${host_name[$hostid]}'" ${ALERT_EMAIL}; fi - # - # else - # fs_status='' - # fs_status_color='Green' - # fi - # - # c=0; cw=30; spc='' - # spc1=`expr ${cw} - ${#dname}` - # until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done - # echo -e "${idsCL[$fs_status_color]} ${dname}${spc}: ${dfree}GB Free - ${dfreeper}%${idsCL[Default]}" - # - # done - # - # else - # echo -e "${idsCL[Yellow]} ${host_name[$hostid]} is down${idsCL[Default]}" - # fi - # - # done + #for hostid in "${!host_ip[@]}"; do + for hostname in "${hostnames_sort[@]}"; do + hostid=${host_ids[$hostname]} + echo -e "${idsST[Bold]}"; DIVIDER + echo -e "${idsCL[LightCyan]} ${host_name[$hostid]} - Drive Space Check${idsCL[Default]}" + DIVIDER; echo -e "${idsST[Reset]}" + + # checkhost=$(CHECK_HOST ${host_ip[$hostid]}) + # if [ "${checkhost}" != "false" ]; then + # DRIVEINFO=$(ssh root@${host_ip[$hostid]} df -BM | grep -vE '^Filesystem|tmpfs|cdrom|@|ram|loop|udev|veeamimage|nvme|localhost|sda|sdb|shm|mmcblk|overlay|-volume|Music|media-data|Software' | awk '{ print $1 " " $2 " " $4 }') + # DRIVEINFO=(${DRIVEINFO}) + # NUMDRIVES=$((${#DRIVEINFO[@]} / 3)) + # + # for ((i = 0 ; i <= $((${NUMDRIVES}-1)) ; i++)); do + # ii=$((${i}*3)) + # dname=${DRIVEINFO[${ii}]} + # dtot=$(bc <<< "scale=2; ${DRIVEINFO[$((${ii}+1))]}/1024/10") + # dfree=$(bc <<< "scale=2; ${DRIVEINFO[$((${ii}+2))]}/1024/10") + # dfreeper=$(printf "%0.2f" $(jq -n ${dfree}/${dtot}*100)) + # dname=${dname//\/dev\/mapper\//} + # dname=${dname//\/dev\//} + # + # if (( $(bc <<<"$dfreeper <= 15") )); then + # fs_status='error' + # fs_status_color='Red' + # if [ "${ALERT_EMAIL}" != "" ]; then echo -e "${host_name[$hostid]} - (${host_ip[$hostid]})\n${dname} : ${dfree} GB free\t$(date)" | mail -s "Free Space Critical: '${host_name[$hostid]}'" ${ALERT_EMAIL}; fi + # + # elif (( $(bc <<<"$dfreeper <= 25") )); then + # fs_status='warn' + # fs_status_color='Yellow' + # if [ "${ALERT_EMAIL}" != "" ]; then echo -e "${host_name[$hostid]} - (${host_ip[$hostid]})\n${dname} : ${dfree} GB free\t$(date)" | mail -s "Free Space Warning: '${host_name[$hostid]}'" ${ALERT_EMAIL}; fi + # + # else + # fs_status='' + # fs_status_color='Green' + # fi + # + # c=0; cw=30; spc='' + # spc1=`expr ${cw} - ${#dname}` + # until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done + # echo -e "${idsCL[$fs_status_color]} ${dname}${spc}: ${dfree}GB Free - ${dfreeper}%${idsCL[Default]}" + # + # done + # + # else + # echo -e "${idsCL[Yellow]} ${host_name[$hostid]} is down${idsCL[Default]}" + # fi + + done } SETUPSSH(){