zoukankan      html  css  js  c++  java
  • DELL服务器硬件信息采集SHELL脚本

    最近需要做资产列表,要采集DELL服务器的硬件信息,包括如下信息:

    1、操作系统信息(类型,版本,内核,平台,主机名)

    2、主板信息(厂商,机型,序列号)

    3、CPU信息(型号,个数,物理核数)

    4、内存(条数,单条容量)

    5、磁盘(个数,单个容量,磁盘类型,Raid级别)


    执行前请先安装MegaRAID,为了提高工作效率,我们使用SHELL脚本来实现,如下:

    #!/bin/sh
    
    #get os information
    
    function get_os_info() {    
        release=`cat /etc/redhat-release | awk '{print $1"_"$3}'`
        kname=`uname -s`
        nodename=`uname -n`
        kernal=`uname -r`
        bit=`uname -i`
        printf "OS_RELEASE: $release"_"$bit
    "
        printf "OS_DETAIL: $kname $nodename $kernal $bit
    "
    }
    
    get_os_info
    
    #get vendor, model, sn...
    
    function motherboardinfo() {    
        vendor=`dmidecode -t 1|grep "Manufacturer"|awk '{print $2}'`
        model=`dmidecode -t 1|grep "Product"|awk '{print $4}'`
        sn=`dmidecode -t 1|grep "Serial" |awk '{print $3}'`
        printf "MODEL: $vendor $model
    "
        printf "SN: $sn
    "
    }
    
    motherboardinfo
    
    function memoryinfo() {
        count=`dmidecode  -q -t 17 2 |grep  "Size" |grep -v "No Module Installed"|awk '{print $2}'|uniq -c|awk '{print $1}'`
        capacity=`dmidecode  -q -t 17 2 |grep  "Size" |grep -v "No Module Installed"|awk '{print $2}'|uniq -c|awk '{print $2}'`
        capacity=`expr $capacity / 1024`
        printf "MEM: $count"*"$capacity"G"
    "
    }
    
    memoryinfo
    
    function cpuinfo() {
        cpu_model=`cat /proc/cpuinfo|grep "model name"|head -1|awk -F: '{print $2}'`
        cpu_count=`cat /proc/cpuinfo|grep "core id"|grep "0"|uniq -c|awk '{print $1}'`
        cpu_total_cores=`cat /proc/cpuinfo|grep "processor"|wc -l`
        single_cores=`expr $cpu_total_cores / $cpu_count`
        printf "CPU:$cpu_model($cpu_count"*"$single_cores"Cores")
    "
    }
    
    cpuinfo
    
    function diskinfo() {
        raidlevel=`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL |grep "RAID"|awk '{print $3}'|cut -b 9-9`
        disknumber=`/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL | grep "Drives"|awk -F ":" '{print $2}'`
        disktype=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep "PD Type"|head -1|awk -F: '{print $2}'`
        diskcapacity=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | grep "Raw Size" | head -1 | awk '{print $3}'`
        printf "DISK: $disknumber"*"$diskcapacity"GB"$disktype (Raid Level: $raidlevel)
    "
    }
    
    diskinfo


    -----------------------------------
    ©著作权归作者所有:来自51CTO博客作者清风拂面的原创作品,如需转载,请注明出处,否则将追究法律责任
    DELL服务器硬件信息采集SHELL脚本
    https://blog.51cto.com/crazy123/1712254

  • 相关阅读:
    Spring@Profile注解
    day 32 子进程的开启 及其用法
    day 31 udp 协议SOCK_DGRAM
    day 30 客户端获取cmd 命令的步骤
    day 29 socket 理论
    day 29 socket 初级版
    有关 组合 继承
    day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
    新式类和经典类的区别
    day 28 hasattr getattr serattr delattr 和带__内置__ 类的内置方法
  • 原文地址:https://www.cnblogs.com/jatq/p/15402021.html
Copyright © 2011-2022 走看看