获取硬盘扩展背板散热情况

·

查看背板设备路径

lsscsi -g | grep enclosu

查看背板温度

sg_ses --page=ec /dev/sg25 | grep Temperature

查看风扇转数

sg_ses --page=ec /dev/sg25 | grep -A6 -i cooling

查看告警和临界温度

执行查看阈值页的命令,在回显中可以看到“高温临界阈值”和“高温告警阈值”。

sg_ses --page=th /dev/sg25

脚本文件

自动获取设备路径并打印芯片型号、当前温度、阈值温度和风扇状态。

#!/bin/bash

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # 无颜色

enclosures=$(lsscsi -g | grep "enclosu" | awk '{print $NF}')

echo "========================================================="
echo "                背板设备状态监控报告                     "
echo "========================================================="

for dev in $enclosures; do
    echo -e "\n[设备路径]: ${GREEN}$dev${NC}"

    # 1. 芯片型号
    info=$(sg_inq "$dev" | grep -E "Vendor|Product|Revision" | awk -F: '{print $2}' | xargs)
    echo ">> 芯片型号: $info"
    echo "---------------------------------------------------------"

    # 2. 当前温度
    echo -n ">> 当前温度: "
    temp=$(sg_ses --page=ec "$dev" | grep "Temperature=" | awk -F'=' '{print $2}' | xargs)
    echo -e "${GREEN}$temp${NC}"

    # 3. 阈值设定 (仅保留摄氏度相关的数值)
    echo ">> 阈值设定: "
    sg_ses --page=th "$dev" | grep "high" | grep -v "<res>" | grep -v "%" | sed 's/^[[:space:]]*//'

    # 4. 风扇状态 (增加异常标红逻辑)
    echo -e "\n>> 风扇状态 (Cooling):"
    fan_data=$(sg_ses --page=ec "$dev" | grep -A6 -i "cooling" | grep -E "Actual speed|status|Element" | sed 's/^[[:space:]]*//')

    # 如果状态包含 Critical 或 Non-critical,则标红显示
    echo "$fan_data" | while read -r line; do
        if [[ $line == *"status: Critical"* || $line == *"status: Non-critical"* ]]; then
            echo -e "${RED}$line${NC}"
        else
            echo "$line"
        fi
    done

    echo -e "\n========================================================="
done

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注