文章目录

  • 前言
  • 项目需求
  • 需求具体实现
    • 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 温度,拿来即用版本,亲测无异常,建议收藏相关推荐

  1. 【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》

    [肝帝一周总结:全网最全最细]☀️Mysql 索引数据结构详解与索引优化☀️<❤️记得收藏❤️> 目录

  2. 2020全网最全的软件测试linux面试题及参考答案,赶紧收藏!

    一.前言: 2020非常全的软件测试linux面试题及参考答案 作为一名软件测试工程师,我相信大部分的人都和Linux打过交道,因为我们的服务器一般都是装的Linux操作系统,包括各种云服务器也都是用 ...

  3. 全网最全最细 FreeRTOS 手册详解——1-The FreeRTOS Distribution

    FreeRTOS :Real Time Engineers Ltd. <A_Hands-On_Tutorial_Guide> 作者:Richard Barry 本专栏是对 FreeRTOS ...

  4. 2020年全网最全最细最流行的自动化测试工具有哪些?

    目录:导读 一:前言 二.2020年自动化测试工具(框架)分类统计 1.Selenium 2.RobotFramework 3.Appium 4.QTP(UFT) 5.其他常见的自动化工具汇总 三.总 ...

  5. 全网最全最细的fiddler使用教程以及工作原理没有之一,如有雷同,纯属抄袭!

    目录:导读 一.Fiddler抓包工具简介 二.Fiddler工作原理 三.Fiddler安装 四.Fiddler界面介绍​ 五.Fiddler菜单栏介绍 六.Fiddler工具栏介绍 七.Fiddl ...

  6. 全网最全最细的【设计模式】总目录,收藏起来慢慢啃,看完不懂砍我

    文章目录 一.设计模式七大原则 1.单一职责原则 2.接口隔离原则 3.依赖倒置原则 4.里氏替换原则 5.开闭原则 6.迪米特法则 7.合成复用原则 二.UML图 1.UML类图 2.UML时序图 ...

  7. fiddler运行原理_全网最全最细的fiddler使用教程以及工作原理

    一.Fiddler抓包工具简介 ​ Fiddler是位于客户端和服务器端的HTTP代理. Fiddler是目前最常用的http抓包工具之一. Fiddler是功能非常强大,是web调试的利器. 二.F ...

  8. 【肝帝一周总结:全网最全最细】十万字python教程,学不会找我!教到你会为止!!内容超多,建议收藏慢慢看!

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

  9. 【全网最全最细】青龙面板搭配Ninja+依赖+Ninja配置的超细讲解教程!!!

    Title 前言 1.连接finalshell或者xshell 2.停止容器(把以下代码复制粘贴进去) 3.删除容器(把以下代码复制粘贴进去) 4.安装安装docker-compose(把以下代码复制 ...

最新文章

  1. oracle打散分组函数,oracle分组函数
  2. 【Vue学习第三天】组件的使用
  3. DIY Roomba Virtual Wall
  4. h5的formData 上传文件及.net后台
  5. 奥拉星插件flash下载手机版下载安装_奥拉星游戏插件
  6. pip与conda简述
  7. java.lang.InstantiationException:
  8. Node.js的require()的工作原理
  9. double类型的数值转为小数点2位
  10. 数据库左连接、右连接、内连接、全连接笔记
  11. Android人脸识别的初步学习
  12. 大数据是什么?华为云学院带你探索大数据之旅
  13. 信息奥赛课课通(C++)p139-例3幸运数的划分
  14. 网页POST之文件上传专项视频教程
  15. 虚幻Delay用法测试
  16. Android应用开发详解【郭宏志】(奋斗之小鸟)_PDF 电子书
  17. Java实现找回密码
  18. 如何得到满意的好答案
  19. matlab多元回归分析怎么计算,matlab在多元线性回归分析中的相关计算
  20. 模仿Airbnb的悬浮搜索框动画

热门文章

  1. algorithm_算法分析引入的记号_复杂度分析符号
  2. Linux系统安装教程(手把手教学)
  3. python判断ip4合法性
  4. 《Android学习笔记》Android12蓝牙扫描不到设备的权限问题
  5. Tornado框架基础
  6. Win7系统丢失libcurl.dll怎么办
  7. Visual Studio Code介绍——工作区域
  8. 中国儿童移动游戏市场解读 潜力巨大有待开发
  9. Mysql 定时任务的关闭
  10. AppEx LotWan广域网加速系统为办公系统进行网络加速