shell获取Linux主机信息(mac地址,处理器,主板,uuid,硬盘)的方法

几个月前换了实习,是一家主要做云计算的创业公司,实习期间给公司的云平台产品做了license绑定主机信息的任务,只能使用shell,需要绑定的信息有:网卡mac地址,处理器id,主板id,系统uuid,硬盘id。我们认为,当以上5种信息,有3种及3种以上信息相同的情况下,确认为同一台主机,因为有的信息在不同环境下可能取不到。若是同一台主机,则含有这5种信息的license在校验过后准许登录,若不符合,则不允许登录。以下是shell脚本:

#!/bin/bash -e
exec 2>/dev/null
if [ ! -f "/usr/sbin/dmidecode" ]; then yum -y install dmidecode; fi
if [ ! -f "/sbin/hdparm" ]; then yum -y install hdparm; fi
if [  -f ~/sysInfo ]; then rm -f ~/sysInfo; fi
uuid=$(dmidecode -s system-uuid)
proccesorid=$(dmidecode -t processor |grep ID |head -1|sed 's/ID:/ /g')
baseboard=$(dmidecode -s baseboard-serial-number)
mac=$(awk '(!/^[#|$]/)&&/./{print $4}' /etc/udev/rules.d/70-persistent-net.rules |sed 's/ATTR{address}=="/ /g'|sed 's/",//g')
harddisk=$(hdparm -i /dev/sda | grep SerialNo |awk '{print $3}'|sed 's/SerialNo=//g')
sec=$(echo ${proccesorid}%${baseboard}%${mac}%${harddisk}%${uuid}| sed 's/ //g')
echo $sec|base64 -i|awk '{{printf "%s",$0}}'


其中,dmidecode和hdarm在大部分linux发行版本中,都默认自带了。uuid,proccessorid,baseboard,mac,harddisk分别是以上5种信息,中间还做了些格式化的操作。

由于要生成license,尽量不要明文,所以在最后又做了一次base64使得生成的sec可以以“密文”传出,当然,在之后真正生成license的时候,会再做一次真正的加密。


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值