树莓派温度监视关机保护脚本

树莓派温度监控保护脚本,超过70度过热时提醒,超过80度过热3次后时提醒并关机自保,记录异常温度到log。
Shell脚本(/home/pi/myboot/temperatureMonitor.sh):

#!/bin/sh
 
#  OVER HOT Temp
hot_temp=80.0

# OVER HOT Count
hot_cnt=0
 
while (true) do
    cur_time=$(date "+%Y-%m-%d %H:%M:%S")
    temp=`/opt/vc/bin/vcgencmd measure_temp|awk -F= '{print $2}'|awk -F\' '{print $1}'`
    if [ `expr "$temp > $hot_temp"` ]; then
        if [ $hot_cnt > 3 ]; then
            echo $cur_time'  Temp = '$temp' degree'
            echo "ERROR: OVER HOT! System needs to shutdown!"
            echo "ERROR: OVER HOT! System needs to shutdown!" >&2
            sleep 3
            halt -p
            break
        else
            let hot_cnt+=1
        fi
    else
        #if over hot 3 times then shutdown 
        hot_cnt=0
        cold_cnt=0
        if [ `expr "$temp < 0.0"` ]; then # Cold
            echo $cur_time'  Temp = '$temp' degree'
            echo "Warning: Cold! Temperature LOW!"
            echo "Warning: Cold! Temperature LOW!" >&2
        elif [ `expr "$temp < 40.0"` ]; then # Standby
            sleep 0.1
            #echo $cur_time'  Temp = '$temp' degree'
            #echo "Info: Standby!"
            #echo "Info: Standby!" >&2
        elif [ `expr "$temp < 70.0"` ]; then # Working
            sleep 0.1
            #echo $cur_time'  Temp = '$temp' degree'
            #echo "Info: Working!"
            #echo "Info: Working!" >&2
        elif [ `expr "$temp < $hot_temp"` ]; then # OVER HOT
            echo $cur_time'  Temp = '$temp' degree'
            echo "Warning: HOT! Temperature OVER 70, Pls make it down!"
            echo "Warning: HOT! Temperature OVER 70, Pls make it down!" >&2
        fi
    fi
    sleep 10
done

chmod 755 /home/pi/myboot/temperatureMonitor.sh

开机启动的服务配置文件(/etc/systemd/system/tempMonitor.service):

[Unit]
Description=Temperature Monitor
After=network.target
 
[Service]
ExecStart=/home/pi/myboot/temperatureMonitor.sh >> /var/log/myboot/temperatureMonitor.log &
Restart=on-abort
 
[Install]
WantedBy=multi-user.target

chmod 755 /var/log/myboot/temperatureMonitor.log

执行 systemctl enable tempMonitor 使 开机启动温控脚本有效化。

【参考资料】[RPI]树莓派监控温度及报警关机保护:https://blog.csdn.net/tzwsoho/article/details/100653014

猜你喜欢

转载自blog.csdn.net/ttyt1217/article/details/119688171