分类: LINUX
2013-02-23 11:43:16
将本机硬件信息(CPU、主板、内存、硬盘、网卡)写入文件,求出该文件MD5值,即为该机器的硬件码
我的源码如下:
#!/bin/bash ########################### #功能:获取硬件码 #作者: #日期: ########################### dmidecode="/usr/sbin/dmidecode" smartctl="/usr/sbin/smartctl" df="/bin/df" lspci="/sbin/lspci" eth_file="/etc/udev/rules.d/70-persistent-net.rules" if [ ! -f $dmidecode ] then echo "dmidecode: command not found!" echo "please \"yum\" to install it" exit fi path=`pwd` tmp_file=$path"/hdid_tmp" touch $tmp_file > $tmp_file #获取cpu信息 echo "CPU information:" >> $tmp_file $dmidecode -t processor | awk '/ID|Version|Serial Number|Core Count/'| sed 's/^[ \t]*//g' >> $tmp_file #获取BIOS信息 echo -e "\nBIOS information:" >> $tmp_file $dmidecode -t bios | awk '/Vendor/,/Release Date/'| sed 's/^[ \t]*//g' >> $tmp_file #获取内存信息 echo -e "\nMemory information:" >> $tmp_file $dmidecode -t memory | awk '/Number Of Devices|^[ \t]*Size|Locator|Serial Number|Part Number/' | sed 's/^[ \t]*//g' >> $tmp_file #获取硬盘信息 echo -e "\nDisk information:" >> $tmp_file dev_name=`$df | grep dev | head -n 1 | awk '{print $1}'` $smartctl -a $dev_name | awk '/Device Model/,/Firmware Version/' >> $tmp_file #获取网卡信息 echo -e "\nEthernet information:" >> $tmp_file $lspci | grep "Ethernet controller" >> $tmp_file while read line do put_out=`echo $line | sed -r "s/(.*)address\}==\"([a-z0-9:]{17})\",(.*)NAME=\"(.*)\"/\2 \4/g"` mac=`echo $put_out | awk '{print $1}'` if [ ${#mac} -eq 17 ] then echo $put_out >> $tmp_file fi done <$eth_file #硬件信息文件MD5值为硬件信息码 /usr/bin/md5sum -t $tmp_file | awk '{print $1}' rm -rf $tmp_file