资讯专栏INFORMATION COLUMN

【忙里偷闲一下午总结:全网最全最细】Linux实时监测CPU 温度,拿来即用版本,亲测无异常,建议收

tianhang / 3538人阅读

前言

各位小伙伴好久不见,最近工作和生活上琐事比较多,所以一直没更文,今天忙里偷闲,跟各位更新一篇拿来即用脚本文章,还望各位笑纳,另外附加介绍每一个的语句的使用以及含义。话不多说,直接开始我们今天的正题:

项目需求

我们采购的工作站老是因为CPU和显卡温度高而导致服务器挂掉,因此领导让写一个监控CPU的温度脚本来实时监测温度,并把异常情况输出到服务器

需求具体实现

1 lm_sensors工具安装

目前市面上通过lm_sensors工具查看主板上多核CPU中温度最高的内核
脚本依赖:lm_sensors工具,可以执行下面语句进行安装,如果安装不了请更换YUM源
工具安装命令:yum install -y lm_sensors
注意事项:
1.“sensors coretemp-isa-0000”中后面的参数视主机实际的参数而定
2.目前vmware虚拟机中lm_sensors工具无法查看硬件温度

2 每行脚本具体说明

[root@dana ~]# sensors coretemp-isa-0000
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +33.0°C (high = +83.0°C, crit = +93.0°C)
Core 0: +32.0°C (high = +83.0°C, crit = +93.0°C)
Core 1: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 2: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 3: +31.0°C (high = +83.0°C, crit = +93.0°C)
Core 4: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 5: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 8: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 9: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 10: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 11: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 12: +31.0°C (high = +83.0°C, crit = +93.0°C)
Core 13: +28.0°C (high = +83.0°C, crit = +93.0°C)
这条指令主要是看CPU温度的所有信息,第一个温度代表当前设备温度值,high = +83.0°C表示超过83度CPU温度过高,crit = +93.0°C表示超过93度CPU就会烧坏
[root@dana ~]# sensors coretemp-isa-0000 | tail -n +3
Package id 0: +33.0°C (high = +83.0°C, crit = +93.0°C)
Core 0: +31.0°C (high = +83.0°C, crit = +93.0°C)
Core 1: +27.0°C (high = +83.0°C, crit = +93.0°C)
Core 2: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 3: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 4: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 5: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 8: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 9: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 10: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 11: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 12: +31.0°C (high = +83.0°C, crit = +93.0°C)
Core 13: +28.0°C (high = +83.0°C, crit = +93.0°C)
这条指令中tail -n +3表示显示文件从第3行至文件末尾的文件内容
[root@dana ~]# sensors coretemp-isa-0000 | tail -n +3 |tr -s " "
Package id 0: +33.0°C (high = +83.0°C, crit = +93.0°C)
Core 0: +32.0°C (high = +83.0°C, crit = +93.0°C)
Core 1: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 2: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 3: +32.0°C (high = +83.0°C, crit = +93.0°C)
Core 4: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 5: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 8: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 9: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 10: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 11: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 12: +31.0°C (high = +83.0°C, crit = +93.0°C)
Core 13: +29.0°C (high = +83.0°C, crit = +93.0°C)
这条指令中tr -s " “表示删除” ",可以理解为删除空格
[root@dana ~]# sensors coretemp-isa-0000 | tail -n +3 |tr -s " " |awk -F [°C+] ‘{print $0}’
Package id 0: +32.0°C (high = +83.0°C, crit = +93.0°C)
Core 0: +31.0°C (high = +83.0°C, crit = +93.0°C)
Core 1: +27.0°C (high = +83.0°C, crit = +93.0°C)
Core 2: +27.0°C (high = +83.0°C, crit = +93.0°C)
Core 3: +29.0°C (high = +83.0°C, crit = +93.0°C)
Core 4: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 5: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 8: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 9: +27.0°C (high = +83.0°C, crit = +93.0°C)
Core 10: +27.0°C (high = +83.0°C, crit = +93.0°C)
Core 11: +28.0°C (high = +83.0°C, crit = +93.0°C)
Core 12: +30.0°C (high = +83.0°C, crit = +93.0°C)
Core 13: +28.0°C (high = +83.0°C, crit = +93.0°C)
这条指令中awk -F [°C+] "{print $0}"表示按照°C+为指定分割符并输出每一行内容
[root@dana ~]# sensors coretemp-isa-0000 | tail -n +3 |tr -s " " |awk -F [°C+] ‘{print $1}’
Package id 0:
这条指令中{print $1}表示只输出每一行第1个字段内容
[root@dana ~]# sensors coretemp-isa-0000 | tail -n +3 |tr -s " " |awk -F [°C+] ‘{print $3}’

32.0
28.0
28.0
31.0
29.0
29.0
29.0
29.0
28.0
29.0
31.0
28.0
这条指令中{print $3}表示只输出每一行第3个字段内容
[root@dana ~]# sensors coretemp-isa-0000 | tail -n +3 |tr -s " " |awk -F [°C+] ‘{print $6}’

83.0
83.0
83.0
83.0
83.0
83.0
83.0
83.0
83.0
83.0
83.0
83.0
这条指令中{print $6}表示只输出每一行第6个字段内容
[root@dana ~]# sensors coretemp-isa-0000 | tail -n +3 |tr -s " " |awk -F [°C+] ‘{print $9}’

93.0
93.0
93.0
93.0
93.0
93.0
93.0
93.0
93.0
93.0
93.0
93.0
这条指令中{print $9}表示只输出每一行第9个字段内容

3 终极代码实现(放大招)

#!/bin/bash# 功能:查看主板上单个多核CPU中温度最高的一个内核# 脚本依赖:lm_sensors工具,可以执行下面语句进行安装,如果安装不了请更换YUM源# 工具安装命令:yum install -y lm_sensors# 注意事项:# 1.“sensors  coretemp-isa-0000”中后面的参数视主机实际的参数而定# 2.目前vmware虚拟机中lm_sensors工具无法查看硬件温度date=`date "+%Y-%m-%d %H:%M:%S"`echo $dateCPU0=`sensors  coretemp-isa-0000 | tail -n +3 |tr -s " " |awk -F [°C+] "{print $3}"`CPU1=`sensors  coretemp-isa-0001 | tail -n +3 |tr -s " " |awk -F [°C+] "{print $3}"`echo $CPU0echo $CPU1highCPU0=`sensors  coretemp-isa-0000 | tail -n +3 |tr -s " " |awk -F [°C+] "{print $1$6}"`highCPU1=`sensors  coretemp-isa-0001 | tail -n +3 |tr -s " " |awk -F [°C+] "{print $1$6}"`for i in $CPU0;doecho $i#echo $i|awk "{printf("%d/n",$0);}"#if [ $i -lt 83 ];thenif [ `echo "$i > 83.0"` ] ; then    echo "$date 请注意!!!coretemp-isa-0000 cpu温度为$i度,请及时排查">>/var/log/cpu_messageelif [ `echo "$i > 93.0"` ] ; then    echo "请注意!!!!!!coretemp-isa-0000 cpu超过此温度就会烧坏,请及时排查">>/var/log/cpu_messageelse    echo "cpu运行一切正常"fidonefor j in $CPU1;doecho $i#echo $i|awk "{printf("%d/n",$0);}"#if [ $i -lt 83 ];thenif [ `echo "$j > 83.0"` ] ; then    echo "$date 请注意!!!coretemp-isa-0001 cpu温度为$i度,请及时排查">>/var/log/cpu_messageelif [ `echo "$j > 93.0"` ] ; then    echo "$date 请注意!!!!!!coretemp-isa-0001 cpu超过此温度就会烧坏,请及时排查">>/var/log/cpu_messageelse    echo "cpu运行一切正常"fidone

最终运行结果

本篇文章所有代码,我都亲测无误,如果本篇博客对您有所帮助,请三连点赞,关注,收藏支持下。有需要沟通交流的,可随时沟通交流,多谢大家支持!!!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119138.html

相关文章

  • 从小白程序员路晋升为大厂高级技术专家我看过哪些书籍?(建议藏)

    摘要:大家好,我是冰河有句话叫做投资啥都不如投资自己的回报率高。马上就十一国庆假期了,给小伙伴们分享下,从小白程序员到大厂高级技术专家我看过哪些技术类书籍。 大家好,我是...

    sf_wangchong 评论0 收藏0
  • 个脚本教你快速去除桌面图标烦人的小箭头

    摘要:于是乎,冰河写了一个脚本完美去除了桌面图标烦人的小箭头。今天,给大家分享一个如何完美去除桌面快捷图标小箭头的技巧,希望能够给大家带来帮助。这种方法不会导致任何问题可放心使用,冰河已经亲自测试过了。 ...

    Jaden 评论0 收藏0
  • Flink 全网最全资源(视频、博客、PPT、入门、实战、源码解析、问答等持续更新)

    摘要:由于配置流是从关系型数据库中读取,速度较慢,导致实时数据流流入数据的时候,配置信息还未发送,这样会导致有些实时数据读取不到配置信息。从数据库中解析出来,再去统计近两周占比。 showImg(https://segmentfault.com/img/remote/1460000019367651); Flink 学习项目代码 https://github.com/zhisheng17/f...

    Dr_Noooo 评论0 收藏0
  • PerfDog性能狗上手体验及总结分析

    摘要:,部分设备支持功能,在启用功能后,系统会对内存进行压缩,增加,会相应减少,由于压缩会占用资源,同时相应会导致降低虚拟内存整机可用剩余内存,极限测试情况下开启可能会造成性能损耗。 一、PerfDog简介 PerfDog性能狗是移动全平台iOS/Android性能测试工具,快速定位分析性能问题,...

    xiangzhihong 评论0 收藏0
  • 无线测温传感器、无线测温装置在项目上的应用—安科瑞 孙斌

    摘要:该系统可实现电力系统中关键部位温度的在线监测,辅助运行人员及时发现设备异常,可为状态检修提供依据,改变了电力系统的检修模式,使运行人员及时掌握设备运行情况,可在一定程度上提高供电系统的可靠性。 安科瑞 孙斌 温度是表征电力一次设备运行正常的一个重要参数。随着用电量的急剧增长,为了满足用电需求...

    WilsonLiu95 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<