forked from yindun/ansible-devops
31 lines
1002 B
Bash
31 lines
1002 B
Bash
#!/bin/bash
|
||
|
||
cd /opt/
|
||
mst start
|
||
|
||
# 检查必要命令
|
||
command -v ibdev2netdev >/dev/null || { echo "错误:ibdev2netdev命令未找到"; exit 1; }
|
||
command -v flint >/dev/null || { echo "错误:flint命令未找到"; exit 1; }
|
||
|
||
# 固件文件定义
|
||
FW_FILE="fw-ConnectX7-rel-28_43_2566-MCX755106AS-HEA_Ax-UEFI-14.37.13-FlexBoot-3.7.500.signed.bin"
|
||
[ -f "$FW_FILE" ] || { echo "错误:固件文件 $FW_FILE 不存在"; exit 1; }
|
||
|
||
# 设备过滤和处理
|
||
ibdev2netdev -v | grep -Ev 'Umbriel|bond' | awk '{print $2}' | while read -r device; do
|
||
# 提取最后一位数字
|
||
last_digit=${device##*_}
|
||
|
||
# 检查是否为数字且为偶数
|
||
if [[ "$last_digit" =~ ^[0-9]+$ ]] && [ $((last_digit % 2)) -eq 0 ]; then
|
||
echo "正在更新双数设备: $device"
|
||
if ! flint -d "$device" -y -i "$FW_FILE" b; then
|
||
echo "警告:设备 $device 更新失败"
|
||
fi
|
||
else
|
||
echo "跳过非双数设备: $device"
|
||
fi
|
||
done
|
||
|
||
echo "固件更新操作完成"
|