#!/bin/bash # ## WK HW diagnostics - Sensors LOG_DIR="$1" function usage { echo "Usage: $0 log-dir" echo " e.g. $0 /var/tmp/hw-diags/9001" } # Bail early if [ ! -d "$LOG_DIR" ]; then usage exit 1 fi # Run Sensor loop if sensors >/dev/null 2>&1; then while :; do sensors -A | grep -E -i -v '(N/A|RPM|\d+\s+V\s+|^\s*$)' > "$LOG_DIR/sensors.out" 2>/dev/null # Colorize # Blue: All temps (superseeded by other colors below) sed -i -r 's#(\+[0-9]+\.[0-9].C)#\\e[34m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1 # Green >= 60* C sed -i -r 's#(\+6[0-9]\.[0-9].C)#\\e[32m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1 # Yellow >= 70* C sed -i -r 's#(\+7[0-9]\.[0-9].C)#\\e[33m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1 # Orange >= 80* C sed -i -r 's#(\+(8[0-9]|9[0-4])\.[0-9].C)#\\e[31\;1m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1 # Red >= 95* C sed -i -r 's#(\+(9[5-9]|1[0-9][0-9])\.[0-9].C)#\\e[31m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1 # Output data clear echo -e "$(cat "$LOG_DIR/sensors.out")" sleep 1s done else echo -e "\e[33mNo sensors found!\nPlease monitor temperatures manually\e[0m" sleep 1h fi