#!/bin/sh
#电脑概览
#电脑型号
ComputerModel=`/usr/bin/sudo /usr/sbin/dmidecode | grep -A2 "System Information" | awk -F ':' '{print $2}' | grep -v '^$' |sed -e 's/Inc//g' -e 's/ //g' -e ':a;N;s/\n/ /g;ta' -e 's/.//g'`
x86_64=`getconf LONG_BIT`
#系统版本
SystemVersion=`cat /etc/redhat-release`
#内核版本
KernelVersion=`uname -r`
#CPU信息,1物理CPU个数2,查看每个物理CPU中core的个数(即核数),查看逻辑CPU的个数(即线程).CPU型号
CPUNum=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
CPUNucleusNum=`cat /proc/cpuinfo| grep "cpu cores"| uniq | awk -F ':' '{print $2}' | sed 's/ //g'`
CPUThreadNum=`cat /proc/cpuinfo| grep "processor"| wc -l`
CPUmodel=`cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq | sed 's/ //g'`
CPUTotalnuclearNum=$[$CPUNum*$CPUNucleusNum]
#主板型号,.主板厂商与型号,.主板版本
MotherBoardModel=`/usr/bin/sudo /usr/sbin/dmidecode | grep -A2 "Base Board Information$" | awk -F ':' '{print $2}' | grep -v '^$' |sed -e 's/Inc//g' -e 's/ //g' -e ':a;N;s/\n/ /g;ta' -e 's/.//g'`
MotherBoardVersion=`/usr/bin/sudo /usr/sbin/dmidecode | grep -A3 "Base Board Information$" | awk -F ':' '{print $2}' | grep -v '^$' |sed -e 's/Inc//g' -e 's/ //g' -e ':a;N;s/\n/ /g;ta' -e 's/.//g' | awk '{print $3}'`
#内存,.内存总数2,内存插槽编号,3内存规格,4内存数组,.循环出所有的内存条参数,6内存显示,7内存数量,8总插槽数量,9支持最大内存
MemoryNum=`/usr/bin/sudo /usr/sbin/dmidecode -t memory | grep Size | awk '{print $2}' | grep -v 'No' | awk '{sum +=$1};END{print sum/1024}'`
MemoryName=`/usr/bin/sudo /usr/sbin/dmidecode -t memory | grep '^Handle' | awk '{print $2}' | sed 's/,//g'`
MemoryNameDDR=""
MemoryArray=
for i in ${MemoryName[@]}
do
Memorytest=`/usr/bin/sudo /usr/sbin/dmidecode -t memory | grep -A19 '^Handle '$i'' | grep -E 'Configured Clock Speed|Speed' | grep 'Unknown'`
if [ $? -eq ];then
continue
fi
MemoryNameDDR[$MemoryArray]=`/usr/bin/sudo /usr/sbin/dmidecode -t memory | grep -A19 '^Handle '$i'' | grep -E 'Type|Configured Clock Speed|Speed' | grep -Ev 'Error|Unknown' | awk -F ':' '{print $2}' | sed -e '2{h;d};3G' | sed -e ':a;N;s/\n/ /g;ta' | awk '{for(i=4;i<=NF;++i) printf $i " ";print $1,$2,$3,"\n"}'`
let MemoryArray=MemoryArray+
done
MemoryEcho=`echo ${MemoryNameDDR[*]} | sed -e 's/MHz/MHz\n/g' | sed -e 's#^ ##g' | sort -r | uniq |grep -v '^$'`
Memory=`/usr/bin/sudo /usr/sbin/dmidecode -t memory | grep -E Size | grep -Ev 'Installed Size|Maximum Memory Module Size|Maximum Total Memory Size:|Enabled Size:|No' | wc -l`
MemoryTotalSlotNum=`/usr/bin/sudo /usr/sbin/dmidecode -t memory | grep "Number Of Devices:" | awk -F':' '{print $2}' | sed 's/ //g'`
MemoryMaximumCapacity=`/usr/bin/sudo /usr/sbin/dmidecode -t memory | grep "Maximum Capacity:" | awk -F':' '{print $2}' | sed 's/ //g'`
#硬盘1,获取所有硬盘盘符,,只获取第一块硬盘信息,.储存判断信息,4获取服务器厂商名,5根据服务器厂商名获取磁盘厂商名
diskNum=`ls /dev/sd* | grep -v '[0-9]$' | awk -F '/' '{print $3}'`
diskVersion=`/usr/bin/sudo /usr/sbin/smartctl --all /dev/${diskNum[]} | grep -E 'Vendor|Product|User Capacity|Rotation Rate' | grep -v 'cache' | awk -F ':' '{print $2}' | sed -e 's# ##g' -e 's/\[/[\n/g' -e 's#]##g' | sed -e '/\[/d' -e 's/rpm//g' | sed ':a;N;s/\n/ /g;ta' | awk '{print $1,$2,"("$3"/"$4"/分)"}'`
diskYes=""
diskComputerModel=`/usr/bin/sudo /usr/sbin/dmidecode | grep -A1 "System Information" | awk -F ':' '{print $2}' | grep -v '^$' |sed -e 's/Inc//g' -e 's/ //g' -e 's/,//g' | awk -F '.' '{print $1}' `
diskRAID=`cat /proc/scsi/scsi | grep Vendor | sed -e 's/Model/\nModel/g' | sed -e '/Model/d' | grep -Eo $diskComputerModel'|VMware'`
#diskSize=`fdisk -l | grep "Disk" | awk '{print $3}' | awk '{sum +=$1};END{print sum}'`
diskSize=`df -P | grep -v 'Filesystem' | awk '{sum +=$2};END{print sum/1024/1024}'`
if [ "$diskRAID" = "VMware" ];
then
diskYes='unknown(Because the hard drive is VMware)'
elif [ "$diskComputerModel" = "$diskRAID" ];
then
diskYes='Yes'
else
diskYes='No'
fi
#显卡
VGA=`/usr/bin/sudo /sbin/lspci |grep VGA | awk -F ':' '{print $3}' | awk -F '.' '{print $1$2}'| sed -e 's#^ ##g'`
#网卡
network=`/usr/bin/sudo /sbin/lspci | grep Ethernet | awk -F ':' '{print $3}' | uniq | sed 's/^ //g'`
#系统序列号
SystemSerialNum=`/usr/bin/sudo /usr/sbin/dmidecode -s system-serial-number`
#打印
echo -e "Server model"'\t'$ComputerModel
echo -e "serial number"'\t'$SystemSerialNum
echo -e "system version"'\t'$SystemVersion"X"$x86_64
echo -e "Kernel version"'\t'$KernelVersion
echo -e '\n'
echo -e "processor "'\t'$CPUmodel"(*"$CPUNum") "$CPUTotalnuclearNum"核"
echo -e "Motherboard"'\t'$MotherBoardModel"("$MotherBoardVersion")"
echo -e "RAM "'\t\t'$MemoryNum" GB"
echo -e "Total Slots"'\t'""$MemoryTotalSlotNum
echo -e "Used Slots"'\t'$Memory " Maximum memory support:"$MemoryMaximumCapacity
echo -e "Hard Details"'\t'"RAID:"$diskYes "capacity:"$diskSize"G"
echo -e "The first disk"'\t'$diskVersion
#echo -e "显卡 "'\t'$VGA
echo -e "NIC "'\t\t'$network | sed 's/) [A-Z a-z 1-9]/)\n &/g' | sed -e 's/^ /\t\t/g' -e 's/\t) /\t/g' | grep -v '^$'

shell脚本查看服务器基本信息的更多相关文章

  1. shell脚本收集服务器基本信息并入库

    # cat check_all.sh #!/bin/bash #create by hexm @2016.6 #date=`date +%Y%m%d` #DIST_FILE=/app/healthch ...

  2. Shell脚本查看linux系统性能瓶颈(转)

    Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...

  3. Shell脚本分析服务器性能

    概述 我们原先在服务器上想分析性能指标,需要执行一系列的linux命令.对于linux命令不熟悉的人来说,比较困难 现在有一套集成的shell脚本,把常用的linux命令都包含在里面,一键式分析性能瓶 ...

  4. Linux shell脚本判断服务器网络是否可以上网

    Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态 我们可以通过curl来访问 www ...

  5. Java 连接远程Linux 服务器执行 shell 脚本查看 CPU、内存、硬盘信息

    pom.xml jar 包支持 <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch& ...

  6. Shell脚本查看apk签名信息

    用shell写了一个查看apk签名的脚本.代码很少也很简单 支持递归目录查询 #!/bin/bash #使用方法 ./getcertificate.sh xx.apk get_signature() ...

  7. Linux上使用shell脚本查看内存情况(超实用)

    #!/bin/bashexport chknum=1 #shell搅拌存放目录(输出日志文件执行后也存于该目录)echo 3 > /wls/wls81/shellsyncwhile [ $chk ...

  8. 如何用shell脚本取出服务器图片

    一 ,SHELL 是什么 (1)shell是一种命令行解释器. (2)是用户和Linux内核之间沟通的桥梁,属于中间件.见下图 (3)交互流程:shell接受用户输入的指令 =>将指令传达给Li ...

  9. Shell脚本查看linux系统性能瓶颈

    脚本目的:分析系统资源性能瓶颈 脚本功能: 1.查看CPU利用率与负载(top.vmstat.sar) 2.查看磁盘.Inode利用率与I/O负载(df.iostat.iotop.sar.dstat) ...

随机推荐

  1. JavaSE——javac、javap、jad

    一.javac 用法:javac <选项> <源文件> 其中,可能的选项包括: -help                            帮助信息   -g       ...

  2. 20145202马超 《Java程序设计》第五周学习总结

    异常:程序在运行的时候出现不正正常的情况 由来:问题也是可以通过java对不正常情况进行描述后的对象的体现. 问题的划分:(1).严重的问题,java通过error类进行描述,对于error一般不编写 ...

  3. BAD_ACCESS在什么情况下出现?如何调试BAD_ACCESS错误

    1. 访问一个僵尸对象,访问僵尸对象的成员变量或者向其发消息 死循环 2. 设置全局断点快速定位问题代码所在行 开启僵尸对象调试功能  

  4. Pascal小游戏之奇葩的RPG

    Pascal吧友作品 一个小RPG Chaobs转载 varplife,plifemax,patt,pre:integer;gr,ex,exmax:integer;alife,alife1,aatt, ...

  5. javascript将分,秒,毫秒转换为xx天xx小时xx秒(任何语言通用,最通俗易懂)

    // 传入参数为总分钟数,如果为秒数,毫秒数,需要对 // 此处得到总秒数 注释部分的代码调整下. function toDateDMS(minutes){ // 将分钟转换为 天,时,分,秒 if( ...

  6. Timer的schedule和scheduleAtFixedRate方法的区别解析

    在java中,Timer类主要用于定时性.周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下 (1)sched ...

  7. 深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)【转】

    原文链接:https://www.cnblogs.com/gdsblog/p/8465401.html 相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transi ...

  8. ASP.Net MVC+EF架构

    ASP.Net MVC是UI层的框架,EF是数据访问的逻辑. 如果在Controller中using DbContext,把查询的结果的对象放到cshtml中显示,那么一旦在cshtml中访问关联属性 ...

  9. Action参数和View、Json、重定向

    一.Action 1.Action参数: 普通参数.Model类.FormCollection (1).普通参数 Index(string name,int age)   框架会自动把用户请求的Que ...

  10. linux服务器基本安全配置手册

    转:忘了在哪转的,直接复制到笔记里了,贴出来分享 假如你想要搭建一个Linux服务器,并且希望可以长期维护的话,就需要考虑安全性能与速度等众多因素.一份正确的linux基本安全配置手册就显得格外重要. ...