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

#!/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()
时间: 2024-12-17 06:02:57

PYTHON 获取机器硬件信息及状态的相关文章

c# WMI获取机器硬件信息(硬盘,cpu,内存等)

using System; using System.Collections.Generic; using System.Globalization; using System.Management; using System.IO; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Runtime.InteropServices; using System.

Python网络编程小例子:使用python获取网站域名信息

Whois简介 whois(读作"Who is",非缩写)是用来查询域名的IP以及所有者等信息的传输协议.简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人.域名注册商).通过whois来实现对域名信息的查询.早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询.网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用.whois通常

使用WMI编程获取主机硬件信息(CPU_ID,硬盘、主板、BIOS序列号,Mac地址)

最近在公司实习,有个应用需要获取windows主机的一些硬件信息,在网上查阅了一些资料,大部分都是使用WMI编程来实现的. 因此小菜鸟自己也用WMI实现了一下,封装为函数GetUserInfo(),具体代码如下: 头文件UserInfo.h: 1 #pragma once 2 #include "stdafx.h" 3 #define _WIN32_DCOM 4 #include <comdef.h> 5 #include <Wbemidl.h> 6 # pra

python 获取linux系统性能信息

本文以及以后有关python 运维的文章都是<Python自动化运维:技术与最佳实践> 的读书笔记. psutil 是python的第三方库,通过它可以轻松获取系统运行的各种信息:cpu.内存.磁盘.网络等 一 安装 安装环境是centos 6.4 64位系统 yum install -y gcc python-devel wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-c

用C#获取电脑硬件信息

现在我将来解释如何在C#中用WMI(Windows Management Instrumentation)来获取电脑的硬件信息. 我们的目的是用WMI的api在C#下获取电脑的以下信息: 物理处理器的数量 逻辑处理器的数量 位数 系统构架 内核数量 在Visual Studio中创建一个控制台应用程序,并且右击引用然后选择"添加引用",再选择"System.Management". 现在已经通过using语句包括了System.Management,你可以在你的代码

Python 获取CentOS主机信息

Python 获取主机IP地址 #!/usr/bin/env python #coding:utf-8 import os ip=os.popen("ifconfig eth0|grep 'inet addr'|awk -F ':' '{print $2}'|awk '{print $1}'") for i in ip: print "ip地址为:%s" %(i.strip()) #ip=ip.read().strip() #print ip Python获取系统的

检测硬件的批处理命令,检测硬件bat,一键获取电脑硬件信息

警告:运行BAT源码是一种危险的动作,如果你不熟悉,请不要尝试! 批处理语言: 简体中文 授权方式: 免费软件 运行环境: Windows平台 检测硬件批处理命令.一键获取.直接双击就可以查看 @echo off color 0a title 硬件检测 mode con cols=90 sc config winmgmt start= auto >nul 2<&1 net start winmgmt 2>1nul setlocal ENABLEDELAYEDEXPANSION e

用Python获取Linux资源信息的三种方法

方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeResource(object): def get_host_info(self): host_name = socket.gethostname() return {'host_name':host_name} def get_cpu_state(self): cpu_count = psutil.cpu

python 获取subprocess实时输出信息

import subprocess p = subprocess.Popen("ping www.baidu.com -n 6",shell=True,stdout=subprocess.PIPE) #一下面是第一种方法(使用时请先注释第二种方法) for i in iter(p.stdout.readline, b''): print i.rstrip() #下面是第二种方法(使用时请先注释第一种方法) returncode = p.poll() #用于检查子进程是否已经结束 whi