一种存储系统配置信息的获取方法与流程

文档序号:12463064阅读:242来源:国知局

本发明涉及存储系统技术领域,尤其涉及一种存储系统配置信息的获取方法。



背景技术:

随着IT行业的高速发展,信息化、大数据及云计算的发展对存储性能要求越来越高,存储扩容也就变得比较频繁。

存储系统的扩容时,需要了解原来存储机器的各项配置,以对性能有相关评估。在查询各项配置的时候需要查看的各项配置会非常多,每项查找都是一个繁琐的过程,如果能有方法一次就能查出需要查看的各项参数配置,将会极大的提高实施人员的工作效率和质量。



技术实现要素:

为了解决该问题,本发明提出了一种存储系统配置信息的获取方法。可以实现针对不同的配置的存储系统,使用该方法后可以迅速获得该系统的硬件配置信息,用来尽快了解系统性能以进行下一步存储应用程序的使用。

本发明的技术方案是:

一种存储系统配置信息的获取方法,主要包括以下几个部分:

(1)根据系统信息,获取系统字符集,字典子集;

(2)读取系统各个硬件相关信息;

(3)硬件信息获取后返回结果;

(4)将返回结果打印展示以查看系统配置信息。

在步骤1中,包括如下过程

1.1)在系统指定目录下建立脚本,准备编写;

1.2)编写脚本

1.3)获取系统字典子集。

在步骤2中,包括如下过程:

2.1)读取CPU信息

2.2)读取硬盘信息

2.3)读取dmidecode信息

2.4)读取网卡信息。

在步骤3中,包括如下过程:

3.1)返回CPU信息

3.2)返回硬盘信息

3.3)返回内存信息

3.4)返回网卡信息

3.5)返回操作系统信息。

在步骤4中,包括如下过程:

4.1)展示各个硬件信息

4.2)脚本编写完成后,赋予执行权限,直接执行即可。

本发明的有益效果是

本发明自定义函数,查看硬件信息。通过执行脚本的方法,可以直接把存储系统的硬件信息直接展示出来。不同的存储系统,同样的执行脚本,可以适用于不同版本的各种存储系统。可以极大的提高效率,尤其为统计存储系统的各项配置信息时,可以提供一种快速的可执行方法。

附图说明

图1是本发明的实现流程图。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

本发明的一种存储系统配置信息的获取方法,其实施过程为

1、在系统指定目录下建立脚本sysinformation.py,准备编写

2、编写脚本。

#!/usr/bin/env python2.7

# -*- coding:utf-8 -*-

import os

import subprocess

import re

import hashlib

3)获取系统字典子集

def sub_dict(form_dict, sub_keys, default=None):

return dict([(k, form_dict.get(k.strip(), default)) for k in sub_keys.split(',')])

4)读取CPU信息

# dmidecode -t 4

def read_cpuinfo():

cpu_stat = []

with open('/proc/cpuinfo', 'r') as f:

data = f.read()

for line in data.split('\n\n'):

cpu_stat.append(line)

return cpu_stat[-2]

5)读取硬盘信息

def read_fdisk():

p = subprocess.Popen('fdisk -l', stdout=subprocess.PIPE, shell=True)

out = p.communicate()[0]

info = []

for i in out.split('\n\n'):

for x in i.splitlines():

if x:

info.append(x)

return info

6)读取dmidecode信息

def read_dmidecode():

p = subprocess.Popen('dmidecode -t 1', stdout=subprocess.PIPE, shell=True)

return p.communicate()[0]

7)读取网卡信息

def read_ifconfig():

p = subprocess.Popen('ifconfig', stdout=subprocess.PIPE, shell=True)

return p.communicate()[0]

8)返回CPU信息

def get_cpuinfo(data):

cpu_info = {}

for i in data.splitlines():

k, v = [x.strip() for x in i.split(':')]

cpu_info[k] = v

cpu_info['physical id'] = str(int(cpu_info.get('physical id')) + 1)

return sub_dict(cpu_info, 'model name,physical id,cpu cores')

9)返回硬盘信息

def get_diskinfo(data):

disk_info = {}

m_disk = re.compile(r'^Disk\s/dev')

for i in data:

if m_disk.match(i):

i = i.split(',')[0]

k, v = [x for x in i.split(':')]

disk_info[k] = v

return disk_info

10)返回内存信息

def get_meminfo():

mem_info = {}

with open('/proc/meminfo', 'r') as f:

data = f.readlines()

for i in data:

k, v = [x.strip() for x in i.split(':')]

mem_info[k] = int(v.split()[0])

return sub_dict(mem_info, 'MemTotal,SwapTotal')

11)返回网卡信息

def get_ipinfo(data):

data = (i for i in data.split('\n\n') if i and not i.startswith('lo'))

ip_info = []

ifname = re.compile(r'(eth[\d:]*|wlan[\d:]*)')

ipaddr = re.compile(

r'(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}')

macaddr = re.compile(r'[A-F0-9a-f:]{17}')

for i in data:

x = {}

if ifname.match(i):

device = ifname.match(i).group()

x['Adapter'] = device

if macaddr.search(i):

mac = macaddr.search(i).group()

x['MAC'] = mac

if ipaddr.search(i):

ip = ipaddr.search(i).group()

x['IP'] = ip

else:

x['IP'] = None

ip_info.append(x)

return ip_info

12)返回操作系统信息

def get_osinfo():

os_info = {}

i = os.uname()

os_info['os_type'] = i[0]

os_info['node_name'] = i[1]

os_info['kernel'] = i[2]

return os_info

13)展示各个硬件信息

def get_indentity(data):

match_serial = re.compile(r"Serial Number: .*", re.DOTALL)

match_uuid = re.compile(r"UUID: .*", re.DOTALL)

if match_serial.search(data):

serial = match_serial.search(data).group()

if match_uuid.search(data):

uuid = match_uuid.search(data).group()

if serial:

serial_md5 = hashlib.md5(serial).hexdigest()

return serial_md5

elif uuid:

uuid_md5 = hashlib.md5(uuid).hexdigest()

return uuid_md5

if __name__ == "__main__":

ipinfo = get_ipinfo(read_ifconfig())

print "ip information:\n", ipinfo

dmiinfo = get_dmiinfo(read_dmidecode())

print "dmi information:\n", dmiinfo

cpuinfo = get_cpuinfo(read_cpuinfo())

print "cpu information:\n", cpuinfo

diskinfo = get_diskinfo(read_fdisk())

print "disk information:\n", diskinfo

meminfo = get_meminfo()

print "memory information:\n", meminfo

osinfo = get_osinfo()

print "os information:\n", osinfo

identity = get_indentity(read_dmidecode())

print "identity information:\n", identity

14)脚本编写完成后,赋予执行权限,直接执行即可。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1