码迷,mamicode.com
首页 > 编程语言 > 详细

PYTHON 获取机器硬件信息及状态

时间:2014-08-29 01:14:46      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   os   io   ar   for   div   

#!/usr/bin/env python
# encoding: utf-8

from optparse import OptionParser
import os
import re
import json

def main():
    try:
        parser = OptionParser(usage="%prog [options]")
        reg_result=re.compile(\[(.*)\])
        #add option
        parser.add_option("-m","--machine",action="store",type="string",dest="machine",help="the machine to be check")
        parser.add_option("-f","--file",action="store",type="string",dest="file",help="the file with machine list")
        parser.add_option("-n","--noah_path",action="store",type="string",dest="noah",help="the bns path or group")
        (options,args)=parser.parse_args()

        result=""
        if options.machine:
            options.machine=options.machine.replace(".baidu.com","")
            result=os.popen("meta-query entity host "+options.machine+" -f sysSuit,memTotal,diskTotal,cpuFrequency,cpuPhysicalCores,netIdc,status -j").read()
        elif options.file:
            result=os.popen("meta-query entity host  -f sysSuit,memTotal,diskTotal,cpuFrequency,cpuPhysicalCores,netIdc,status -F "+options.file+" -j").read()
        elif options.noah:
            result=os.popen("get_instance_by_service "+options.noah+" |meta-query entity host  -f sysSuit,memTotal,diskTotal,cpuFrequency,cpuPhysicalCores,netIdc,status -F  -j").read()
        else:
            return

        result=json.loads(result)
        print "%-*s%-*s%-*s%-*s%-*s%-*s"%(40,"Name",10,"CPU",10,"memery",10,"disk",10,"IDC",10,"status")
        for item in result:
            if item[Values][cpuFrequency]!="null":
                item[Values][cpuFrequency]=str(float(item[Values][cpuFrequency])/1000.0)[0:3]
            else:
                item[Values][cpuFrequency]="0"
            item[Values][diskTotal]=str(float(item[Values][diskTotal])/1000000000.0)[0:5]
            item[Values][memTotal]=str(float(item[Values][memTotal])/1024/1000.0)[0:5]
            
            print "%-*s%-*s%-*s%-*s%-*s%-*s" % (40,item[Name],10,item[Values][cpuFrequency]+" x"+item[Values][cpuPhysicalCores],10,item[Values][memTotal]+"G",10,item[Values][diskTotal]+"T",10,item[Values][netIdc],10,item[Values][status])
    except Exception,e:
        return

if __name__ =="__main__":
    main()

PYTHON 获取机器硬件信息及状态

标签:des   style   blog   color   os   io   ar   for   div   

原文地址:http://www.cnblogs.com/mengyixuan/p/3943904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!