查看背板设备路径
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

发表回复