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 /’

在这里插入图片描述

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值