现在天气炎热,家里开着一台 Linux 机器,白天人不在家,也就没有开空调,不知道电脑 CPU 的温度到底多少度?会不会烧了。 如果有个监控程序,能在 CPU 温度超过一个指定值的时候自动关机,并且能发送一封通知信就好了。 其实利用 Linux 自带的工具,很容易就能实现。 首先安装 CPU 温度传感器程序: # yum install -y lm_sensors 然后检测机器上面的温度传感器(这个命令只需要运行一次就行了): # sensors-detect --auto ... Intel digital thermal sensor... Success! (driver `coretemp') ... 可以看到检测到了 Intel 温度传感器。 运行一下 sensors 命令,看看 CPU 现在的温度: $sensors acpitz-virtual-0 Adapter: Virtual device temp1: +27.8°C (crit = +105.0°C) temp2: +29.8°C (crit = +105.0°C)
coretemp-isa-0000 Adapter: ISA adapter Physicalid 0: +42.0°C (high = +80.0°C, crit = +100.0°C) Core0: +41.0°C (high = +80.0°C, crit = +100.0°C) Core1: +40.0°C (high = +80.0°C, crit = +100.0°C) 那个 acpitz-virtual-0 是虚拟设备,不用管。我们关注的是 CPU 温度,也就是 coretemp。 可以看到 CPU 有两个核,一个 41°,一个 40°。 接下来我们写一个简单的监控脚本就好了,放到 /usr/local/bin/cpu.sh: #!/bin/bash
for t in `sensors|grep Core|awk -F "[ .]+" '{ print $3; }'` do
if [[ $t > 60 ]] then sensors | mail -s "CPU 过热" 1234567@qq.com poweroff exit 0 fi
done $t > 60 表示温度超过 60°。1234567@qq.com 改成你自己的邮箱。 然后写 /etc/crontab: */5 ** * * root sh /usr/local/bin/cpu.sh 每隔 5 分钟检测一下 CPU 的温度。 要测试是否有效,可以写比当前低的温度,比如 30 来测试一下这个脚本是否正确。正常的话 5 分钟内就会收到通知信,并且电脑自动关机了。 如何发邮件请参考上一篇文章 Linux 上一个简单好用的邮件发送程序 ssmtp 好了,这下就可以高枕无忧了,不用担心宝贝机器热坏了。 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:gorooty,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |