【忙里偷闲一下午总结:全网最全最细】Linux实时监测CPU 温度,拿来即用版本,亲测无异常,建议收藏
文章目录
- 前言
- 项目需求
- 需求具体实现
- 1 lm_sensors工具安装
- 2 每行脚本具体说明
- 3 终极代码实现(放大招)
前言
各位小伙伴好久不见,最近工作和生活上琐事比较多,所以一直没更文,今天忙里偷闲,跟各位更新一篇拿来即用脚本文章,还望各位笑纳,另外附加介绍每一个的语句的使用以及含义。话不多说,直接开始我们今天的正题:
项目需求
我们采购的工作站老是因为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 $date
CPU0=`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 $CPU0
echo $CPU1
highCPU0=`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;
do
echo $i
#echo $i|awk '{printf("%d\n",$0);}'
#if [ $i -lt 83 ];then
if [ `echo "$i > 83.0"` ] ; thenecho "$date 请注意!!!coretemp-isa-0000 cpu温度为$i度,请及时排查">>/var/log/cpu_message
elif [ `echo "$i > 93.0"` ] ; thenecho "请注意!!!!!!coretemp-isa-0000 cpu超过此温度就会烧坏,请及时排查">>/var/log/cpu_message
elseecho "cpu运行一切正常"
fi
donefor j in $CPU1;
do
echo $i
#echo $i|awk '{printf("%d\n",$0);}'
#if [ $i -lt 83 ];then
if [ `echo "$j > 83.0"` ] ; thenecho "$date 请注意!!!coretemp-isa-0001 cpu温度为$i度,请及时排查">>/var/log/cpu_message
elif [ `echo "$j > 93.0"` ] ; thenecho "$date 请注意!!!!!!coretemp-isa-0001 cpu超过此温度就会烧坏,请及时排查">>/var/log/cpu_message
elseecho "cpu运行一切正常"
fi
done
最终运行结果
本篇文章所有代码,我都亲测无误,如果本篇博客对您有所帮助,请三连点赞,关注,收藏支持下。有需要沟通交流的,可随时沟通交流,多谢大家支持!!!
【忙里偷闲一下午总结:全网最全最细】Linux实时监测CPU 温度,拿来即用版本,亲测无异常,建议收藏相关推荐
- 【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》
[肝帝一周总结:全网最全最细]☀️Mysql 索引数据结构详解与索引优化☀️<❤️记得收藏❤️> 目录
- 2020全网最全的软件测试linux面试题及参考答案,赶紧收藏!
一.前言: 2020非常全的软件测试linux面试题及参考答案 作为一名软件测试工程师,我相信大部分的人都和Linux打过交道,因为我们的服务器一般都是装的Linux操作系统,包括各种云服务器也都是用 ...
- 全网最全最细 FreeRTOS 手册详解——1-The FreeRTOS Distribution
FreeRTOS :Real Time Engineers Ltd. <A_Hands-On_Tutorial_Guide> 作者:Richard Barry 本专栏是对 FreeRTOS ...
- 2020年全网最全最细最流行的自动化测试工具有哪些?
目录:导读 一:前言 二.2020年自动化测试工具(框架)分类统计 1.Selenium 2.RobotFramework 3.Appium 4.QTP(UFT) 5.其他常见的自动化工具汇总 三.总 ...
- 全网最全最细的fiddler使用教程以及工作原理没有之一,如有雷同,纯属抄袭!
目录:导读 一.Fiddler抓包工具简介 二.Fiddler工作原理 三.Fiddler安装 四.Fiddler界面介绍 五.Fiddler菜单栏介绍 六.Fiddler工具栏介绍 七.Fiddl ...
- 全网最全最细的【设计模式】总目录,收藏起来慢慢啃,看完不懂砍我
文章目录 一.设计模式七大原则 1.单一职责原则 2.接口隔离原则 3.依赖倒置原则 4.里氏替换原则 5.开闭原则 6.迪米特法则 7.合成复用原则 二.UML图 1.UML类图 2.UML时序图 ...
- fiddler运行原理_全网最全最细的fiddler使用教程以及工作原理
一.Fiddler抓包工具简介 Fiddler是位于客户端和服务器端的HTTP代理. Fiddler是目前最常用的http抓包工具之一. Fiddler是功能非常强大,是web调试的利器. 二.F ...
- 【肝帝一周总结:全网最全最细】十万字python教程,学不会找我!教到你会为止!!内容超多,建议收藏慢慢看!
文章目录 推荐:个人推荐学习系列,推荐的一定是好的! 0.源码下载地址 一.内容过多,前言一定要看 二. python入门 三.python缩进 四.Python注释 1.单行注释 2.多行注释 五. ...
- 【全网最全最细】青龙面板搭配Ninja+依赖+Ninja配置的超细讲解教程!!!
Title 前言 1.连接finalshell或者xshell 2.停止容器(把以下代码复制粘贴进去) 3.删除容器(把以下代码复制粘贴进去) 4.安装安装docker-compose(把以下代码复制 ...
最新文章
- oracle打散分组函数,oracle分组函数
- 【Vue学习第三天】组件的使用
- DIY Roomba Virtual Wall
- h5的formData 上传文件及.net后台
- 奥拉星插件flash下载手机版下载安装_奥拉星游戏插件
- pip与conda简述
- java.lang.InstantiationException:
- Node.js的require()的工作原理
- double类型的数值转为小数点2位
- 数据库左连接、右连接、内连接、全连接笔记
- Android人脸识别的初步学习
- 大数据是什么?华为云学院带你探索大数据之旅
- 信息奥赛课课通(C++)p139-例3幸运数的划分
- 网页POST之文件上传专项视频教程
- 虚幻Delay用法测试
- Android应用开发详解【郭宏志】(奋斗之小鸟)_PDF 电子书
- Java实现找回密码
- 如何得到满意的好答案
- matlab多元回归分析怎么计算,matlab在多元线性回归分析中的相关计算
- 模仿Airbnb的悬浮搜索框动画