检查系统信息的简单脚本

原创 2017年08月29日 11:33:16
#!/bin/bash
#检查系统信息
#2017-08-29
#auth cy
#Version 2.0.2
release_file='/etc/redhat-release';
userfile=/etc/passwd;
smart_bin=`which smartctl 2>/dev/null`;
dmi_bin=`which dmidecode  2>/dev/null`;
diskinfo=(`fdisk -l|awk 'FS="[ :,.]+"{if($0~/Disk \/.+\/[a-z]+:/){print $2":"$3$5}}'`);
function define_check_user() {
    if [ `id -u` -ne 0  ]
    then
        echo '请使用root用户执行脚本!';
        exit 11;
    fi
}
function define_check_tools() {
    #检查是否安装"smartmontools","smartmontools"包含smartctl
    if [ -n $smart_bin  ]
    then
        smart=true;
    fi

    #检查是否安装"dmidecode"
    if [ -n $dmi_bin  ]
    then
        dmi=true;
    fi
    #操作系统名称
    if [ -e $release_file ]
    then
        echo '操作系统名称:'
    echo `cat $release_file`
    fi
}
function define_Hardware_info() {
    if [ $dmi == 'true'  ]
    then
        echo -ne '主板信息:\n';
        dmidecode -t 2|awk 'FS=":"{if($0~/Manufacturer/ && $2 !~/Not Specified/){manufacturer=$2;}if($0~/Product Name/ && $2 !~/Not Specified/){product=$2;}}END{print  manufacturer" --"product;}';
        echo -ne '内存信息:\n';
        dmidecode -t 17|awk 'FS=":"{if($0 ~"Size:" && $2 !~ / No Module Installed/){num=NR+9}if(NR>num){b=0}else{b=1}}b{if($0 ~/Size:/ || $0 ~/[^ ]Speed:/ || $0 ~/Manufacturer:/){gsub(/\s/,"",$0);print $0}}';

    fi

    echo -ne '处理器信息:\n';
        awk 'FS=": "{if($1~"model name"){print $2}}' /proc/cpuinfo;


    echo -ne '磁盘驱动:\n';
        #输出数组中的内容
        for dev in ${diskinfo[*]}
        do
                dev_num=`echo $dev|cut -d':' -f1`;
                dev_type=`smartctl -i $dev_num|awk 'FS=":"{if($1~"Device Model"){print $2}}'`;

                if [ $smart == 'true'  ]
                then
                        echo -ne $dev_type"\n";
                        echo -ne $dev"\n";
                else
                        echo -ne $dev"\n";
                fi

        done

    echo -ne '网络适配器:\n';
        lspci|awk 'FS=":"{if($0~"Ethernet controller"){print $3}}'
}
function define_tuning_system () {
    userlist=`grep bash$ $userfile|cut -d: -f 1`
    echo -ne "系统可登陆用户:\n"
    echo -ne "$userlist "

}
function denfine_network_info (){
    ipaddr=`ifconfig |grep 'inet '|awk '{print $2}'|sed '$d'`
    ping -c 5 $ipaddr >>/dev/null &
    if [ $? -eq 0 ]
    then
    echo
    echo -ne '本机IP地址为:\n'
    echo -ne "$ipaddr"
    echo
    else
    echo -ne "本机没有配置IP地址"
    fi
}
function denfine_other (){
    if [ $smart == 'null' -o $dmi == 'null'  ]
    then
        echo '如需获取详细信息请使用"smartmontools"和"dmidecode"工具'
    fi
}
define_check_user
define_check_tools
define_Hardware_info
define_tuning_system
denfine_network_info
denfine_other

运行截图:
ShowHardwareInfo.sh

版权声明:本文为博主原创文章,未经博主允许不得转载。

综合输出系统信息的简单脚本

可以清晰有条理地显示出当前系统的OS、IP等信息。 脚本代码如下:#!/bin/bash clear if [[ $# -eq 0 ]];then reset_color=$(tput sgr0) o...

自动检查raid信息脚本

  • 2014年06月25日 15:23
  • 14KB
  • 下载

检查存储结构-控制、REDO日志、表空间使用情况、数据文件等信息脚本--HTML

检查项目: 数据库概要信息-库名、创建时间、运行平台、所在主机等 控制文件及控制文件记录信息 REDO日志简要信息--详细的参考 表空间及数据文件对应信息 表空间存储属性及使用情况--使用率...

Windows系统安全检查脚本

这个批处理主要检查的内容是: 1、系统信息检查 2、端口状态检查 3、添加/卸载记录 4、IE浏览器记录 5、用户检查 6、隐藏用户检查 7、进程检查 8、注册表启动项检查 9、通信检查 10、CM...
  • SunICOC
  • SunICOC
  • 2016年08月07日 20:39
  • 199

Linux系统shell脚本编程——生产实战案例(批量检查在线IP与开放端口)

Linux系统shell脚本编程——生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工...

银监会信息系统现场检查指南

  • 2013年06月10日 12:07
  • 72KB
  • 下载

客运综合管理系统项目解析-安全检查(模块)-车辆信息

2.3-2 车辆信息        安全检查-车辆信息是在已有司机信息后新增班次信息。班次名称新增时会自动检测是否已有新增的班次,保证班次不会重复会自动清空,在选择车辆型号(大/中/小型车)或者编辑...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:检查系统信息的简单脚本
举报原因:
原因补充:

(最多只允许输入30个字)