diff --git a/powerwall.sh b/powerwall.sh index 51f839b4..8b1f855f 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -60,17 +60,17 @@ CHECKTEMPSENSOR(){ #echo "$temp_c -> $temp_f" if [ $(bc -l <<< "$temp_f >= $temp_warn") -eq 1 ] && [ $(bc -l <<< "$temp_f < $temp_crit") -eq 1 ]; then - echo -en "${idsCL[Yellow]}WARNING ($temp_f°F)${idsCL[Default]}" + echo -en "${idsCL[Yellow]}WARNING ($temp_f'F)${idsCL[Default]}" elif [ $(bc -l <<< "$temp_f >= $temp_crit") -eq 1 ]; then - echo -en "${idsCL[Red]}CRITICAL ($temp_f°F)${idsCL[Default]}" + echo -en "${idsCL[Red]}CRITICAL ($temp_f'F)${idsCL[Default]}" else - echo -en "${idsCL[Green]}Normal ($temp_f°F)${idsCL[Default]}" + echo -en "${idsCL[Green]}Normal ($temp_f'F)${idsCL[Default]}" fi c=0; spc=''; spc1=`expr 13 - ${#temp_f} - 2`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done [ ${#temp_warn} == 2 ] && spcw=' ' || spcw=' ' [ ${#temp_crit} == 2 ] && spcc=' ' || spcc=' ' - echo -e "${spc}[${spcw}${idsCL[Green]}<=$(expr ${temp_warn} - 1)°F${idsCL[Default]} /${spcw}${idsCL[Yellow]}${temp_warn}°F${idsCL[Default]} /${spcc}${idsCL[Red]}${temp_crit}°F${idsCL[Default]} ]" + echo -e "${spc}[${spcw}${idsCL[Green]}<=$(expr ${temp_warn} - 1)'F${idsCL[Default]} /${spcw}${idsCL[Yellow]}${temp_warn}'F${idsCL[Default]} /${spcc}${idsCL[Red]}${temp_crit}'F${idsCL[Default]} ]" fi } @@ -114,16 +114,16 @@ CHECKTEMP_SERVICE(){ if [ $(bc -l <<< "$temp_f >= $temp_warn") -eq 1 ] && [ $(bc -l <<< "$temp_f < $temp_crit") -eq 1 ]; then if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then - SENDNOTICE "${SENSOR} TEMP WARNING" "($datetime) WARNING TEMP: ${temp_f}°F - (Difference of ${temp_diff}°)" 1 + SENDNOTICE "${SENSOR} TEMP WARNING" "($datetime) WARNING TEMP: ${temp_f}'F - (Difference of ${temp_diff}')" 1 echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp} last_temp[${SENSOR}]=$temp_f fi - echo "($datetime) - ${temp_f}F - WARNING TEMP - (Difference of ${temp_diff}°)" >> ${logtemp} + echo "($datetime) - ${temp_f}F - WARNING TEMP - (Difference of ${temp_diff}')" >> ${logtemp} elif [ $(bc -l <<< "$temp_f >= $temp_crit") -eq 1 ] && [ $(bc -l <<< "$temp_f < $temp_crit_sys") -eq 1 ]; then - echo "($datetime) - ${temp_f} F - CRITICAL - (Difference of ${temp_diff} F)" >> ${logtemp} + echo "($datetime) - ${temp_f}'F - CRITICAL - (Difference of ${temp_diff}'F)" >> ${logtemp} if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then - SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) CRITICAL TEMP: ${temp_f}°F - (Difference of ${temp_diff}°) + SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) CRITICAL TEMP: ${temp_f}'F - (Difference of ${temp_diff}') Shutting down servers!!" 1 echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp} last_temp[${SENSOR}]=$temp_f @@ -135,7 +135,7 @@ Shutting down servers!!" 1 elif [ $(bc -l <<< "$temp_f >= $temp_crit_sys") -eq 1 ]; then echo "($datetime) - ${temp_f}F - SYSTEM CRITICAL - (Difference of ${temp_diff})" >> ${logtemp} if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then - SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) SYSTEM CRITICAL TEMP: ${temp_f}°F - (Difference of ${temp_diff}°) + SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) SYSTEM CRITICAL TEMP: ${temp_f}'F - (Difference of ${temp_diff}') Shutting down system servers!!" 1 echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp} last_temp[${SENSOR}]=$temp_f @@ -146,13 +146,13 @@ Shutting down system servers!!" 1 fi else if [ ${last_temp[${SENSOR}]} -gt 1 ]; then - SENDNOTICE "${SENSOR} BACK TO NORMAL" "($datetime) NORMAL TEMP: ${temp_f}°F -Previous Temp: ${last_temp[${SENSOR}]}°F" + SENDNOTICE "${SENSOR} BACK TO NORMAL" "($datetime) NORMAL TEMP: ${temp_f}'F +Previous Temp: ${last_temp[${SENSOR}]}'F" echo -e "($datetime) - ${SENSOR} - ${temp_f}'F - Back to NORMAL TEMP - Previous Temp: ${last_temp[${SENSOR}]}'F" >> ${logtemp} echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp} elif [ ${last_temp[${SENSOR}]} -eq 0 ]; then SENDNOTICE "${SENSOR} TEMP NORMAL" "($datetime) Service Startup -NORMAL TEMP: ${temp_f}°F" +NORMAL TEMP: ${temp_f}'F" echo -e "($datetime) - ${SENSOR} - ${temp_f}'F - Service Startup - NORMAL TEMP" >> ${logtemp} fi last_temp[${SENSOR}]=1 @@ -399,13 +399,13 @@ SHUTDOWN_SERVERS(){ elif [ "${1}" = "SYS" ]; then for ESXIHOST in "${SYSHOSTS[@]}"; do - echo -en "Shutting Down VM's on: ${ESXIHOST}" + echo -en "Shutting Down VM's on: ${ESXIHOST} ... " ${FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 ${FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1 echo "Done" done for ESXIHOST in "${SYSHOSTS[@]}"; do - echo -en "Shutting Down Host: ${ESXIHOST}" + echo -en "Shutting Down Host: ${ESXIHOST} ... " ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e true -t 0' ssh root@${ESXIHOST} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' & ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e false -t 0' @@ -413,27 +413,32 @@ SHUTDOWN_SERVERS(){ done for ESXIHOST in "${SYSHOSTS[@]}"; do - echo -en "Waiting for Host (${ESXIHOST}) to shutdown... " + echo -en "Waiting for Host (${ESXIHOST}) to shutdown ... " while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do sleep 1 done - echo "Ok" + echo "Done" done fi } -SHUTDOWN_SERVER(){ - echo "Shutting Down: ${1}" - /usr/bin/ssh root@${1} "cp /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async.sh /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${1}.sh" - /usr/bin/ssh root@${1} "cp /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/esxidown.sh /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/esxidown-${1}.sh" - /usr/bin/ssh root@${1} "sed -i 's/\$SCRIPTPATH\/esxidown.sh/\$SCRIPTPATH\/esxidown-${1}.sh/g' /vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${1}.sh" - /usr/bin/ssh root@${1} "/vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${1}.sh" - - echo -en "Waiting for Host (${1}) to shutdown... " +SHUTDOWN_SERVER(){ + echo -en "Shutting Down VM's on: ${1} ... " + ${FOLDER}/esxi-scripts/vm-shutdown.ps1 ${1} >/dev/null 2>&1 + ${FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${1} >/dev/null 2>&1 + echo "Done" + + echo -en "Shutting Down Host: ${1} ... " + ssh root@${1} 'esxcli system maintenanceMode set -e true -t 0' + ssh root@${1} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"' & + ssh root@${1} 'esxcli system maintenanceMode set -e false -t 0' + echo "Done" + + echo -en "Waiting for Host (${1}) to shutdown ... " while ping -qw 10 -c3 "${1}">/dev/null 2>&1; do sleep 1 done - echo "Ok" + echo "Done" } ISCSIVMSHUTDOWN(){ diff --git a/run.sh b/run.sh index eac6bce6..a6347429 100755 --- a/run.sh +++ b/run.sh @@ -7,7 +7,7 @@ source /opt/idssys/powerwall/defaults.inc source /opt/idssys/powerwall/powerwall.conf if [ "${1}" == "update" ] || [ "${1}" == "" ]; then - if curl -s --head --request GET https://git.schroedercity.com | grep "HTTP/2 200" > /dev/null; then + if curl -m 15 -s --head --request GET https://git.schroedercity.com | grep "HTTP/2 200" > /dev/null; then if [ "${2}" != "q" ]; then echo -en "${idsCL[LightCyan]}Checking for updates...${idsCL[Default]}" echo ""