我们工作中,经常需要获取服务器的一些信息,包括软件的和硬件的。例如刚刚接收的服务器,需要批量获取信息确认硬件配置是否符合我们需求,或者维护很长时间的服务器,中间变动了很多,但是服务器信息没有更改,这个时候也需要进行信息核对等等。基于以上这些需求,我写了一个脚本,用shell批量获取远程服务器的信息保存到一个结果,然后用python进行解析,生成excel表。以下是具体步骤:
- 配置ssh免密码登录,或者不配置请安装sshpass工具;
- 安装XlsxWriter模块,python需要调用这个模块来创建和生成excel表;
- shell脚本,根据ip列表批量去获取所需要的信息,保存到一个文件当中;
- python解析结果文件,生成所需要的excel表;
以下是具体的代码:
#批量获取信息
#!/bin/bash
declare -A RESULT
RESULT=()
function getinfo() {
IP=$1
OUTIP=$(ssh root@$IP -p 22 "ifconfig eth0 |grep -w inet |cut -d':' -f2 |cut -d' ' -f1")
HOSTNAME=$(ssh root@$IP -p 22 'hostname')
RELEASE=$(ssh root@$IP -p 22 'cat /etc/redhat-release')
CPU=$(ssh root@$IP -p 22 "cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c")
PYCPU_NU