Bash 语言 监控 CPU 核心温度变化

Bash阿木 发布于 1 天前 1 次阅读


阿木博主一句话概括:基于Bash语言的CPU核心温度监控脚本实现

阿木博主为你简单介绍:
随着计算机技术的发展,CPU核心温度监控成为保障系统稳定运行的重要手段。本文将围绕Bash语言,探讨如何编写一个简单的CPU核心温度监控脚本,实现对系统核心温度的实时监控和记录。

关键词:Bash语言;CPU核心温度;监控脚本;Linux系统

一、

CPU核心温度是衡量计算机系统稳定性的重要指标。过高的温度可能导致系统性能下降,甚至损坏硬件。实时监控CPU核心温度对于保障系统稳定运行具有重要意义。本文将介绍如何使用Bash语言编写一个简单的CPU核心温度监控脚本,实现对Linux系统CPU核心温度的实时监控和记录。

二、Bash语言简介

Bash(Bourne-Again SHell)是一种常用的Unix/Linux系统命令行解释器,它提供了强大的脚本功能。Bash脚本可以执行一系列命令,实现自动化操作。本文将利用Bash语言编写CPU核心温度监控脚本。

三、CPU核心温度监控脚本实现

1. 获取CPU核心温度

在Linux系统中,可以使用`cat`命令读取`/sys/class/hwmon/hwmon0/temp1_input`文件来获取CPU核心温度。其中,`hwmon0`是硬件监控设备名称,`temp1_input`是温度传感器名称。

2. 编写监控脚本

以下是一个简单的CPU核心温度监控脚本示例:

bash
!/bin/bash

定义监控间隔时间(单位:秒)
INTERVAL=5

定义温度阈值(单位:摄氏度)
TEMP_THRESHOLD=75

循环监控CPU核心温度
while true; do
获取CPU核心温度
TEMP=$(cat /sys/class/hwmon/hwmon0/temp1_input)

判断温度是否超过阈值
if [ "$TEMP" -gt "$TEMP_THRESHOLD" ]; then
echo "警告:CPU核心温度过高,当前温度为 $TEMP 摄氏度!"
执行相应操作,如发送邮件、重启系统等
else
echo "CPU核心温度正常,当前温度为 $TEMP 摄氏度。"
fi

等待指定间隔时间
sleep $INTERVAL
done

3. 脚本说明

(1)`INTERVAL`变量定义了监控间隔时间,可以根据实际需求进行调整。

(2)`TEMP_THRESHOLD`变量定义了温度阈值,当CPU核心温度超过该值时,脚本将执行相应操作。

(3)`while true`循环用于持续监控CPU核心温度。

(4)`cat /sys/class/hwmon/hwmon0/temp1_input`命令用于获取CPU核心温度。

(5)`if [ "$TEMP" -gt "$TEMP_THRESHOLD" ]; then`语句用于判断温度是否超过阈值。

(6)`echo`命令用于输出监控信息。

四、总结

本文介绍了如何使用Bash语言编写一个简单的CPU核心温度监控脚本。通过该脚本,可以实现对Linux系统CPU核心温度的实时监控和记录。在实际应用中,可以根据需求对脚本进行扩展,如添加日志记录、发送邮件报警等功能。

五、扩展应用

1. 日志记录

为了方便后续查看和分析,可以将监控信息记录到日志文件中。修改脚本如下:

bash
!/bin/bash

定义监控间隔时间(单位:秒)
INTERVAL=5

定义温度阈值(单位:摄氏度)
TEMP_THRESHOLD=75

定义日志文件路径
LOG_FILE="/var/log/cpu_temp.log"

循环监控CPU核心温度
while true; do
获取CPU核心温度
TEMP=$(cat /sys/class/hwmon/hwmon0/temp1_input)

判断温度是否超过阈值
if [ "$TEMP" -gt "$TEMP_THRESHOLD" ]; then
echo "警告:CPU核心温度过高,当前温度为 $TEMP 摄氏度!" >> $LOG_FILE
执行相应操作,如发送邮件、重启系统等
else
echo "CPU核心温度正常,当前温度为 $TEMP 摄氏度。" >> $LOG_FILE
fi

等待指定间隔时间
sleep $INTERVAL
done

2. 发送邮件报警

当CPU核心温度超过阈值时,可以通过邮件发送报警信息。修改脚本如下:

bash
!/bin/bash

定义监控间隔时间(单位:秒)
INTERVAL=5

定义温度阈值(单位:摄氏度)
TEMP_THRESHOLD=75

定义邮件发送地址
EMAIL="your_email@example.com"

循环监控CPU核心温度
while true; do
获取CPU核心温度
TEMP=$(cat /sys/class/hwmon/hwmon0/temp1_input)

判断温度是否超过阈值
if [ "$TEMP" -gt "$TEMP_THRESHOLD" ]; then
echo "警告:CPU核心温度过高,当前温度为 $TEMP 摄氏度!" | mail -s "CPU温度报警" $EMAIL
else
echo "CPU核心温度正常,当前温度为 $TEMP 摄氏度。"
fi

等待指定间隔时间
sleep $INTERVAL
done

通过以上扩展应用,可以使CPU核心温度监控脚本更加实用和高效。