#!/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. Alter the structure of web pages with JavaScript

    Most of the DOM methods you've seen so far are useful for identifying elements. Both getElementById ...

  2. 20,Django contenttypes 应用

    contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 1.创建一个项目 2.数据库迁移,生成默认表. 3.存着所 ...

  3. 1196/P2323: [HNOI2006]公路修建问题

    1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2191  Solved: 1258 Descriptio ...

  4. Dragger 2遇到的坑 Dragger2详解 Dragger2学习最好的资料

    我是曹新雨,我为自己代言.现在的菜鸟,3年以后我就是大神.为自己加油.微信:aycaoxinyu Dragger2是什么,我就不再说了.资料一堆,而且里面的注解什么意思,我推荐两篇文章,这两篇都是我精 ...

  5. Java Spring Controller 获取请求参数的几种方法

    技术交流群:233513714  1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"=& ...

  6. IOS多网卡抓包

    linux下libpcap支持从多网卡抓包,设置为any即可 在IOS或者mac上就无法通过次方法抓取所有网卡报文 1.通过设置libevent事件回调,每个网卡注册读事件, fd通过 pd = pc ...

  7. 常见算法用Pascal实现

    基本算法    这些都是非常基本的的算法,希望所有学习的人都能理解!        1.数论算法      求两数的最大公约数      function gcd(a,b:integer):integ ...

  8. jmeter之录制控制器与代理的使用

    1.       先启动jmeter,在测试计划中添加线程组 2.       选中线程组右键添加,在配置元件中点击HTTP请求默认值 3.       选中线程组右键添加,在逻辑控制器中点击录制控制 ...

  9. python基础实践(三)

    -*-列表是新手可直接使用的最强大的python功能之一,它融合了众多重要的编程概念.-*- # -*- coding:utf-8 -*-# Author:sweeping-monkQuestion_ ...

  10. Linq中Count()和Any()引发的效率问题

    1.count和any 今天看了鹤冲天的文章:Linq:切勿使用 Count() > 0 来判断集合非空   有所收获,写下文章总结一下: 先看如下代码: static void Main(st ...