忙里偷闲一下午总结:全网最全最细linux实时监测cpu温度,拿来即用版本,亲测无异常,建议收藏(代码片段)

爱小可爱的IT白 爱小可爱的IT白     2022-12-29     132

关键词:

前言

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

项目需求

我们采购的工作站老是因为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"` ] ; then
    echo "$date 请注意!!!coretemp-isa-0000 cpu温度为$i度,请及时排查">>/var/log/cpu_message
elif [ `echo "$i > 93.0"` ] ; then
    echo "请注意!!!!!!coretemp-isa-0000 cpu超过此温度就会烧坏,请及时排查">>/var/log/cpu_message
else
    echo "cpu运行一切正常"
fi
done

for j in $CPU1;
do
echo $i
#echo $i|awk 'printf("%d\\n",$0);'
#if [ $i -lt 83 ];then
if [ `echo "$j > 83.0"` ] ; then
    echo "$date 请注意!!!coretemp-isa-0001 cpu温度为$i度,请及时排查">>/var/log/cpu_message
elif [ `echo "$j > 93.0"` ] ; then
    echo "$date 请注意!!!!!!coretemp-isa-0001 cpu超过此温度就会烧坏,请及时排查">>/var/log/cpu_message
else
    echo "cpu运行一切正常"
fi
done

最终运行结果

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

肝帝一周总结:全网最全最细☀️mysql索引数据结构详解与索引优化☀️《❤️记得收藏❤️》(代码片段)

【肝帝一周总结:全网最全最细】☀️Mysql索引数据结构详解与索引优化☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈🏳️‍🌈1、索引🚣2、索引数据结构... 查看详情

肝帝一周总结:全网最全最细十万字python教程,学不会找我!教到你会为止!!内容超多,建议收藏慢慢看!(代码片段)

文章目录推荐:个人推荐学习系列,推荐的一定是好的!0、源码下载地址一、内容过多,前言一定要看二、python入门三、python缩进四、Python注释1.单行注释2.多行注释五、Python变量1.变量定义理解2.变量名命名3.分... 查看详情

万字长文!全网最全最细mysqlsql语句大全(建议收藏)

关注我,每天分享软件测试技术干货、面试经验,想要领取测试资料、进入软件测试学习交流群的可以直接加群644956177~~这篇文章主要向大家介绍MySQLsql语句大全,主要内容包括基础应用、实用技巧、原理机制等方面,... 查看详情

2022年最流行的自动化测试工具有哪些?全网最全最细都在这里了

...测试领域,自动化工具肯定占据了核心的位置。本文总结了常用的测试自动化工具和框架,这些工具和框架有助于更好地定位自己,以跟上软件测试的发展趋势。二、2022年自动化测试工具( 查看详情

全网最全linux命令总结!!(史上最全,建议收藏)(代码片段)

...收获。今天,给小伙伴们带来一篇史上最全Linux命令总结的文章,命令有点多,建议小伙伴 查看详情

全网最全linux命令总结!!(史上最全,建议收藏)(代码片段)

...收获。今天,给小伙伴们带来一篇史上最全Linux命令总结的文章,命令有点多,建议小伙伴 查看详情

全网最全最细青龙面板搭配ninja+依赖+ninja配置的超细讲解教程!!!(代码片段)

Title前言1.连接finalshell或者xshell2.停止容器(把以下代码复制粘贴进去)3.删除容器(把以下代码复制粘贴进去)4.安装安装docker-compose(把以下代码复制粘贴进去)5.创建docker-compose.yml文件6.如果使用的xshell的请... 查看详情

全网最细linux之centos8安装mysql8.0以上版本,您值得收藏!(代码片段)

...远程连接1、开启防火墙2、开放3306端口2、远程连接授权总结前言小编博客发布了很多版本MySQL的方式,之所以又发布了一篇关于MySQL的文章࿰ 查看详情

全网最细linux之centos8安装mysql8.0以上版本,您值得收藏!(代码片段)

...远程连接1、开启防火墙2、开放3306端口2、远程连接授权总结前言小编博客发布了很多版本MySQL的方式,之所以又发布了一篇关于MySQL的文章࿰ 查看详情

2022年最流行的自动化测试工具有哪些?全网最全最细都在这里了

...测试领域,自动化工具肯定占据了核心的位置。本文总结了常用的测试自动化工具和框架,这些工具和框架有助于更好地定位自己,以跟上软件测试的发展趋势。二、2022年自动化测试工具(框架)分类统计1.Se... 查看详情

肝魂一晚上总结:2021年全网最全最面的让你java从零教你变大佬思维图☀️《❤️记得收藏❤️》

【肝魂一晚上总结:2021年全网最全最面的】让你Java从零教你变大佬思维图☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈苏州程序大白🏳️‍🌈😀前言😃... 查看详情

从青铜到王者,你只差这篇全网最全linux命令大全

...,少壮功夫老始成〞从青铜到王者,你只差这篇全网最全linux命令大全。全网最全linux命令大全,从入门到精通,助力大厂橄榄枝,如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示... 查看详情

从青铜到王者,你只差这篇全网最全linux命令大全

...,少壮功夫老始成〞从青铜到王者,你只差这篇全网最全linux命令大全。全网最全linux命令大全,从入门到精通,助力大厂橄榄枝,如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示... 查看详情

全网最新最细最全最牛的jmeter接口测试,性能测试,没有之一,如有雷同纯属抄袭。

目录 1、接口简介2、接口测试简介3、环境搭建4、RESTful风格 5、Json说明6、Jmeter简介7、Jmeter环境搭建8、Jmeter使用8.1Jmeter发GET请求8.2线程组8.2.1 并发执行8.2.2 顺序执行8.2.3 线程组-Ramp-UpPeriod(insenconds)8.2.4 线程组-循环次数8.2.5 ... 查看详情

全网最全性能优化总结!!(冰河吐血整理,建议收藏)

大家好,我是冰河~~随着互联网的高速发展,互联网行业已经从IT时代慢慢步入到DT时代。对于Java程序员的要求越来越高,只是单纯的掌握CRUD以不足以胜任互联网公司的相关职位,大量招聘岗位显示:如果是面... 查看详情

全网数据备份+inotify实时监测(代码片段)

第1章备份要求及逻辑图1.1总体逻辑图1.2全网备份要求1.2.1全网备份基本要求已知3台服务器主机名分别为A(web01)、B(backup)、C(nfs01)要求:每天晚上00点整在Web服务器A上打包备份系统配置文件、网站程序目录及访问日志并通过rsync命... 查看详情

全网最细docker安装minio,填满最新版大坑(强烈推荐收藏)(代码片段)

...测试3、MinIO自定义Access和Secret密钥4、MinIO后台的方式启动总结前言通常在企业中我们会将一些图片,视频,文档等相关数据存储在对象存储中,常见的对象存储服务有阿 查看详情

wpf这可能是全网最全的拖拽实现方法的总结

原文:【WPF】这可能是全网最全的拖拽实现方法的总结前文本文只对笔者学习掌握的一般的拖动问题的实现方法进行整理和讨论,包括窗口、控件等内容的拖动。希望本文能对一些寻找此问题的解决方法的人和一些刚入门的人一... 查看详情