本脚本只适用于centos7以上的系统。同时需要MegaCli工具的支持。所以在脚本开始就安装了次工具。
脚本如下:
代码语言:javascript复制#!/bin/bash
#通过shell获取服务器资产信息
#版本:v1.0
#========安装MegaCli================= #这一步可以自行安装
wget http://192.168.1.105/package/MegaCli-8.07.06-1.noarch.rpm
yum localinstall MegaCli-8.07.06-1.noarch.rpm -y
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/
rm -f MegaCli-8.07.06-1.noarch.rpm
#========记录之前的老IP地址=========
stty erase ^H
read -p "Please enter old ip:" OLDIP
#========获取SN号===============
SN=`dmidecode -t 1 |grep Serial |awk -F " " '{print $3}'`
#========机房代号===============
JF=szsjhl
#========主机类型===============
SBLX=physical
#========设备品牌===============
PP=`dmidecode -t 1 |grep Manufacturer |awk -F " " '{print $2}'`
#========设备型号===============
XH=`dmidecode -t 1 |grep Product |awk -F " " '{print $4}'`
#========获取ip地址==============
IP=`ifconfig |grep broadcast |head -1 |awk -F " " '{print $2}'`
#========获取主机名==============
HOSTNAME=`hostname |awk -F "-" '{print $1"-"$2"-"$3}'`
#========获取CPU型号==============
CPU=`cat /proc/cpuinfo |grep name |head -1 |awk -F " " '{print $7}'`
#========获取cpu版本================
CPUV=`cat /proc/cpuinfo |grep name |head -1 |awk -F " " '{print $8}'`
#========获取CPU数量================
CPUCOUNT=`cat /proc/cpuinfo |grep "physical id" | sort |uniq |wc -l`
#========获取单个CPU核心数===============
CPUCORE=`cat /proc/cpuinfo| grep "cpu cores" |head -1 |awk -F " " '{print $4}'`
#========获取内存大小===============
MEM=`free -h |grep Mem |awk -F " " '{print $2}'`
#========获取硬盘大小===============
DISK=`MegaCli64 -PDlist -aALL |grep Raw |head -1 |awk -F " " '{print $3}'` #取整数echo ${DISK%.*}
#========获取硬盘数量===============
DISKCONUT=`MegaCli64 -PDlist -aALL |grep Id |wc -l`
#========获取虚拟磁盘大小=====================
VDISK=`MegaCli64 -LDInfo -Lall -aALL |grep Size |head -1 |awk -F " " '{print $3" "$4}'`
#========导入csv文件===============================
echo "SN,机房,主机类型,品牌型号,旧IP地址,现在IP地址,系统hostname,CPU型号 数量,单核CPU核心数,内存大小,单个硬盘大小,硬盘数量,虚拟磁盘大小" > $IP.csv
echo "$SN,$JF,$SBLX,$PP $XH,$OLDIP,$IP,$HOSTNAME,$CPU$CPUV*$CPUCOUNT,$CPUCORE 核心,$MEM,${DISK%.*} GB,$DISKCONUT 块,$VDISK" >> $IP.csv
#========转换编码=========================================
/usr/bin/iconv -f UTF-8 -t GBK "$IP.csv" -o "$IP.csv"
#========上传csv文件到指定共享文件夹=================================
/usr/bin/scp $IP.csv admin@192.168.1.105:/volume1/share/IDC
收集出来的.csv文件格式。