python 获取内存的状态
2015-07-16 16:08
302 查看
#!/usr/bin/env python import subprocess try: import simplejson as json except: import json memory_status = {} p = subprocess.Popen("dmidecode --type system | perl -alne '/Manufacturer:\s(.*)/ and print $1'", shell=True, stdout=subprocess.PIPE) vender = p.stdout.readline().strip() if vender == 'HP': mem_slot = [] mem_status = [] p = subprocess.call("rpm -qa | grep hp-health", shell=True, stdout=subprocess.PIPE) if p != 0: subprocess.call("rpm -ivh http://downloads.linux.hp.com/downloads/ManagementComponentPack/centos/6/x86_64/9.40/hp-health-9.40-1602.44.rhel6.x86_64.rpm", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p = subprocess.Popen("hpasmcli -s 'show dimm'", shell=True, stdout=subprocess.PIPE) for line in p.stdout.readlines(): a = {} data = line.strip().split(":") if len(data) == 2: a[data[0].strip()] = data[1].strip() if 'Status' in a.keys(): status = a['Status'] if status == "Ok": status = 0 mem_status.append(status) length = len(mem_status) if length: for i in range(0, length): slot = "slot_%d" % (i) mem_slot.append(slot) memory_status = dict(zip(mem_slot, mem_status)) else: mem_slot = [] mem_status = [] p = subprocess.Popen("omreport chassis Memory", shell=True, stdout=subprocess.PIPE) for line in p.stdout.readlines(): a = {} data = line.strip().split(":") if len(data) == 2: a[data[0].strip()] = data[1].strip() if 'Index' in a.keys(): if a['Index']: slot = "slot_" + a['Index'] mem_slot.append(slot) elif 'Status' in a.keys(): status = a['Status'] if status != "Unknown" and status == "Ok": status = 0 mem_status.append(status) memory_status = dict(zip(mem_slot, mem_status)) print json.dumps(memory_status, indent=4)
相关文章推荐
- Winpython Spyder template.py模板日期格式的修改
- Pony ORM
- 详解Python的Django框架中的模版继承
- 【Python】利用当前时间、随机数产生一个唯一的数字
- ZH奶酪:Python按行读取文件
- Python中函数的参数传递与可变长参数
- 深入super,看Python如何解决钻石继承难题
- Windows下Python 模块安装
- Python数据类型判断及列表脚本操作
- vim搭载python
- Python的Django框架中的Context使用
- 转-Python PIL ImageDraw 和ImageFont模块学习
- python中的map()函数
- python中的map、filter、reduce函数
- 在Python的Django框架中加载模版的方法
- pythone 请求响应字典
- python学习之--SyntaxError: Non-ASCII character '\xe5'
- 在Ubuntu上安装MySQLdb(mysql-python)
- python学习之--安装IDE(eclipse+pydev)
- python strip()