#!/usr/bin/env python#Encoding:utf-8 fromOptparseImportOptionparserImportOSImportReImportJSONdefMain ():Try: Parser= Optionparser (usage="%prog [Options]") Reg_result=re.compile ('\[(.*)\]') #Add OptionParser.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="" ifOptions.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 ()elifOptions.file:result=os.popen ("meta-query entity host-f syssuit,memtotal,disktotal,cpufrequency,cpuphysicalcores,netidc,status-f"+options.file+"-j"). Read ()elifOptions.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: returnresult=json.loads (Result)Print "%-*s%-*s%-*s%-*s%-*s%-*s"% (40,"Name", 10,"CPU", 10,"Memery", 10,"Disk", 10,"IDC", 10,"Status") forIteminchResult:ifitem['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']) exceptexception,e:returnif __name__=="__main__": Main ()
PYTHON acquires machine hardware information and status