批量收集多台服务器的序列号和型号的bash shell脚本

#!/bin/bash
# 定义远程服务器IP列表
IP_LIST=("192.168.1.10" "192.168.1.11" "192.168.1.12")
SSH_PWD="Gaoyangsray"  # 远程 root 密码

# 循环获取每台服务器的信息
for IP in "${IP_LIST[@]}"; do
    echo "===== 服务器 $IP 硬件信息 ====="
    # 获取序列号
    SERIAL=$(echo "$SSH_PWD" | sshpass -d0 ssh -4 -o StrictHostKeyChecking=no root@$IP "dmidecode -s system-serial-number")
    # 获取型号
    MODEL=$(echo "$SSH_PWD" | sshpass -d0 ssh -4 -o StrictHostKeyChecking=no root@$IP "dmidecode -s system-product-name")
    echo "序列号:$SERIAL"
    echo "型号:$MODEL"
    echo ""
done

补充说明:

dmidecode -s system-serial-number 用于提取主机唯一序列号,dmidecode -s system-product-name 提取服务器型号,均需 root 权限执行;

注意事项:虚拟机可能无有效输出,普通用户执行会权限不足,可结合 sudo 或切换 root 用户

Categories: 系统运维