41 lines
1.7 KiB
Bash
Executable file
41 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
||
|
||
# ----------------------------------------------------------------------------------
|
||
# Script for checking the temperature reported by the ambient temperature sensor,
|
||
# and if deemed too high send the raw IPMI command to enable dynamic fan control.
|
||
#
|
||
# Requires:
|
||
# ipmitool – apt-get install ipmitool
|
||
# slacktee.sh – https://github.com/course-hero/slacktee
|
||
# ----------------------------------------------------------------------------------
|
||
|
||
|
||
# IPMI SETTINGS:
|
||
# Modify to suit your needs.
|
||
# DEFAULT IP: 192.168.0.120
|
||
IPMIHOST=10.0.100.20
|
||
IPMIUSER=root
|
||
IPMIPW=calvin
|
||
IPMIEK=0000000000000000000000000000000000000000
|
||
|
||
# TEMPERATURE
|
||
# Change this to the temperature in celcius you are comfortable with.
|
||
# If the temperature goes above the set degrees it will send raw IPMI command to enable dynamic fan control
|
||
MAXTEMP=27
|
||
|
||
# This variable sends a IPMI command to get the temperature, and outputs it as two digits.
|
||
# Do not edit unless you know what you do.
|
||
TEMP=$(ipmitool -I lanplus -H $IPMIHOST -U $IPMIUSER -P $IPMIPW -y $IPMIEK sdr type temperature |grep Ambient |grep degrees |grep -Po '\d{2}' | tail -1)
|
||
|
||
|
||
if [[ $TEMP > $MAXTEMP ]];
|
||
then
|
||
printf "Warning: Temperature is too high! Activating dynamic fan control! ($TEMP C)" | systemd-cat -t R710-IPMI-TEMP
|
||
echo "Warning: Temperature is too high! Activating dynamic fan control! ($TEMP C)" | /usr/bin/slacktee.sh -t "R710-IPMI-TEMP [$(hostname)]"
|
||
ipmitool -I lanplus -H $IPMIHOST -U $IPMIUSER -P $IPMIPW -y $IPMIEK raw 0x30 0x30 0x01 0x01
|
||
else
|
||
# healthchecks.io
|
||
curl -fsS --retry 3 https://hchk.io/XXX >/dev/null 2>&1
|
||
printf "Temperature is OK ($TEMP C)" | systemd-cat -t R710-IPMI-TEMP
|
||
echo "Temperature is OK ($TEMP C)"
|
||
fi
|