温度及报警关机保护"/>
[RPI]树莓派监控温度及报警关机保护
最近把树莓派用作了Aria2下载机+无线路由,24小时不间断工作,生怕机子有时会过热烧坏,所以写了个脚本做温度记录,以及在温度过高时能自动关机保护。下面直接上Shell脚本(/data/temperature.sh):
#!/bin/sh# 高温阈值
hot_temp=80.0# 低温阈值
cold_temp=-70.0# 过热预警连续出现次数
hot_cnt=0# 过冷预警连续出现次数
cold_cnt=0while (true) dotemp=`/opt/vc/bin/vcgencmd measure_temp|awk -F= '{print $2}'|awk -F\' '{print $1}'`echo $temp# 网上有实验表明,树莓派温度达到 -78°C 的低温下会停止工作# .htmlif [ `expr "$temp < $cold_temp"` ]; thenif [ $cold_cnt > 3 ]; thenecho "太冷了,我不会是在太空中吧!" >&2halt -pbreakelselet cold_cnt+=1fielif [ `expr "$temp > $hot_temp"` ]; thenif [ $hot_cnt > 3 ]; thenecho "太热了,需要关机休息一下!" >&2halt -pbreakelselet hot_cnt+=1fielse# 需要连续出现温度预警才会关机hot_cnt=0cold_cnt=0if [ `expr "$temp < 0.0"` ]; then # 有点冷echo "警告:当前温度有点冷,小心受凉!" >&2elif [ `expr "$temp < 40.0"` ]; then # 待机温度sleep 0.1elif [ `expr "$temp < 70.0"` ]; then # 正常工作温度sleep 0.1elif [ `expr "$temp < $hot_temp"` ]; then # 挖矿温度?echo "警告:我有点热,注意控制温度!" >&2fifisleep 10
done
另外,还可以写个服务配置文件(/etc/systemd/system/temperature.service):
[Unit]
Description=Temperature Monitor
After=network.target[Service]
ExecStart=/data/temperature.sh > /data/temperature.log &
Restart=on-abort[Install]
WantedBy=multi-user.target
最后执行一下systemctl enable temperature,这样每次开机时就会自动启动温度监控脚本。
更多推荐
[RPI]树莓派监控温度及报警关机保护
发布评论