• shell脚本查询硬件信息(仅在centos7和rh7做了测试)


    做了一个shell脚本查询硬件信息(仅在centos7和rh7做了测试)

    shell脚本链接

    第一次写博客,里面的编辑排版还不太会,有些内容没显示全!
    脚本下载链接放在顶部了,下面是写的内容:

    #! /bin/bash

    echo -e “\033[32m系统信息\033[0m\n”
    echo -e “系统版本:cat /etc/redhat-release
    echo -e “内核版本:uname -a | awk '{print $1,$3}'
    echo -e “服务器制造商:dmidecode | grep "Manufacturer" | sed -n '1p' | awk -F':' '{print $2}'
    echo -e “服务器型号:dmidecode | grep "Product Name" | sed -n '1p' | awk -F':' '{print $2}'
    echo -e “服务器序列号:dmidecode | grep "Serial Number" | sed -n '1p' | awk -F':' '{print $2}'
    echo -e “主板序列号:dmidecode | grep "Serial Number" | sed -n '2p' | awk -F':' '{print $2}'
    rai=lspci | grep -i raid | cut -d ':' -f 3
    echo -e “raid卡型号:if [ -z "$rai" ];then echo -e "无raid卡" else echo -e "$rai" fi


    echo -e “\033[32mCPU处理器信息\033[0m\n”
    echo -e “CPU型号:cat /proc/cpuinfo | grep "model name" | uniq | awk -F':' '{print $2}'
    n=cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
    m=cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F': ' '{print $2}'
    z=cat /proc/cpuinfo | grep "sibling" | wc -l
    i=expr $n \* $m
    echo -e “超线程状态:if [ $i -lt $z ]; then echo "已开启" elif [ $i = $z ]; then echo "未开启" else echo "无结果" fi
    echo -e “CPU物理个数: n 个 " e c h o − e " 每个 C P U 核数 : n个" echo -e "每个CPU核数: n"echoe"每个CPU核数:m核”
    echo -e “CPU总核数:$i核”
    echo -e “逻辑CPU总数:cat /proc/cpuinfo | grep "processor" |wc -l核”
    echo -e “CPU内核频率:cat /proc/cpuinfo | sort | grep MHz | uniq | awk -F':' '{print $2"MHz"}'| sed '2,$s/^/\t /'


    echo -e “\033[32m内存信息\033[0m\n”
    sum=dmidecode -t memory | grep "Size" | grep -v "No Module Installed" | awk '{print $2}' | awk '{sum += $1}; END {print sum}'
    sumhead=dmidecode -t memory | grep "Size" | grep -v "No Module Installed" | awk '{print $3}'| head -1
    if [ $sumhead = “MB” ];then
    echo -e “内存大小:expr $sum / 1024GB”
    elif [ $sumhead = “GB” ];then
    echo -e “内存大小:dmidecode -t memory | grep "Size" | grep -v "No Module Installed" | awk '{print $2}' | awk '{sum += $1}; END {print sum}'GB”
    fi
    echo -e “支持最大的内存容量:dmidecode | grep "Maximum Capacity" | uniq | awk -F':' '{print $2}'
    echo -e “内存插槽总数:dmidecode -t 17 | grep -A5 "Memory Device" | grep Size | wc -l个槽位”
    echo -e “已占用插槽数:dmidecode -t 17 | grep -A5 "Memory Device" | grep Size | grep -v "No Module Installed"|wc -l个槽位”
    vol=(dmidecode | grep -A5 "Memory Device" |grep -i Size | grep -v "No"| grep -v "Range Size" | awk -F':' '{print $2}' | sed s/[[:space:]]//g | xargs)
    fre=(dmidecode | grep "Clock Speed" | grep -v "Unknown" | awk '{print $4"MHz"}' | xargs)
    echo -e “每个内存条大小/频率:for vofr in ${!vol[@]}; do echo ${vol[vofr]}/${fre[vofr]}; done | xargs


    echo -e “\033[32m网卡信息\033[0m\n”
    echo -e “网卡型号:lspci | grep -i ethernet |awk -F':' '{print $3}' | sed '2,$s/^/\t /'
    et=ip a | grep -i broadcast | awk -F':' '{print $2}' | sed s/[[:space:]]//g | grep -v "bond"
    for eh in $et;
    do
    etl=ethtool $eh | sed -n "2p" | awk -F':' '{print $2}' | sed s/[[:space:]]//g
    maccx=ifconfig $eh | grep -i hwaddr | awk '{print $5}'
    connection=ethtool $eh | grep -i "link detected" | awk -F':' '{print $2}' | sed s/[[:space:]]//g
    speeds=ethtool $eh | grep -i speed | awk -F':' '{print $2}' | sed s/[[:space:]]//g
    if [ “ e t l " = " [ T P ] " ] ; t h e n i f [ " etl" = "[TP]" ];then if [ " etl"="[TP]"];thenif["connection” = “no” ];then
    echo “ e h − 电口 − 未接线 − eh-电口-未接线- eh电口未接线maccx”
    elif [ “ c o n n e c t i o n " = " y e s " ] ; t h e n i f [ " connection" = "yes" ];then if [ " connection"="yes"];thenif["speeds” = “100Mb/s” ];then
    echo “ e h − 电口 − 已接线 − 100 M b / s − eh-电口-已接线-100Mb/s- eh电口已接线100Mb/smaccx”
    elif [ “ s p e e d s " = " 1000 M b / s " ] ; t h e n e c h o " speeds" = "1000Mb/s" ];then echo " speeds"="1000Mb/s"];thenecho"eh-电口-已接线-1000Mb/s- m a c c x " e l i f [ " maccx" elif [ " maccx"elif["speeds” = “10000Mb/s” ];then
    echo “ e h − 电口 − 已接线 − 10000 M b / s − eh-电口-已接线-10000Mb/s- eh电口已接线10000Mb/smaccx”
    else echo “ e h − 电口 − 已接线 − 未知 − eh-电口-已接线-未知- eh电口已接线未知maccx”
    fi
    else echo “未知”
    fi
    elif [ “ e t l " = " [ F I B R E ] " ] ; t h e n i f [ " etl" = "[FIBRE]" ];then if [ " etl"="[FIBRE]"];thenif["connection” = “no” ];then
    echo “ e h − 光口 − eh-光口- eh光口maccx-未接线”
    elif [ “ c o n n e c t i o n " = " y e s " ] ; t h e n i f [ " connection" = "yes" ];then if [ " connection"="yes"];thenif["speeds” = “100Mb/s” ];then
    echo “ e h − 光口 − 已接线 − 100 M b / s − eh-光口-已接线-100Mb/s- eh光口已接线100Mb/smaccx”
    elif [ “ s p e e d s " = " 1000 M b / s " ] ; t h e n e c h o " speeds" = "1000Mb/s" ];then echo " speeds"="1000Mb/s"];thenecho"eh-光口-已接线-1000Mb/s- m a c c x " e l i f [ " maccx" elif [ " maccx"elif["speeds” = “10000Mb/s” ];then
    echo “ e h − 光口 − 已接线 − 10000 M b / s − eh-光口-已接线-10000Mb/s- eh光口已接线10000Mb/smaccx”
    else echo “ e h − 光口 − 已接线 − 未知 − eh-光口-已接线-未知- eh光口已接线未知maccx”
    fi
    else echo “未知”
    fi
    else echo “无接口类型”
    fi
    done | sed ‘1s/^/网卡数据-MAC地址:/; 2,$s/^/\t\t /’

    在这里插入图片描述

  • 相关阅读:
    Flutter学习-导航和路由
    10 分钟教会你如何看懂 MySQL 执行计划
    [Power Query] 数据的透视与逆透视
    Linux驱动开发(十八)---网络(网卡)驱动学习
    程序员进阶之路,该怎么走?
    【目标检测】一文干翻xml文件的读取
    好用又有趣的软件分享,走过路过不要错过
    MATLAB算法实战应用案例精讲-【优化算法】沙丁鱼优化算法(SOA)(附MATLAB代码实现)
    面试系列Spring:Spring的事务传播
    Python3:@property属性装饰器
  • 原文地址:https://blog.csdn.net/weixin_38096971/article/details/132627643