机器信息采集脚本(python)

机器信息采集脚本(python)

源代码位置: https://github.com/caidao/ugetinfo-1.0.0  (希望大家能多多star收藏和fork改进程序)

一、做什么的?
   (1)主要用于采集服务器的相关信息,提供两种交互方式,一种是将服务器信息汇总至xml文件中,便于软件开发者使用(图1);另一种方式通过命令行交互的方式,通过输入参数信息查询相关信息(图2)。     
                                                          图1
                                                         图2
(2)主要功能
  •   uname  : 操作系统版本 、型号 、处理器、机器名等
  •   CPU :型号 、数量 、使用率等
  •   network : 网卡信息、MAC、IP、子网掩码、网络I/O等
  • memory :  内存大小、使用率、可用大小等
  • 存储   :  类型、大小、使用情况、磁盘I/O等
  • 数据库版本和安装路径:Mysql、oracle、sqlserver、sybase、db2

二、怎么做?

(1)、依赖的库
       psutil库       下载地址: https://pypi.python.org/pypi/psutil
       windows系统需要安装WMI库  下载地址: https://pypi.python.org/pypi/WMI/#downloads  这个库在安装之前要安装pywin32

(2)、命令行解析模块 optparse
         功能强大,且易于使用,可以方便地生成标准的、符合Unix/Posix规范的命令行说明。
文档说明中文翻译:http://blog.csdn.net/caidaoqq/article/details/44706005(英语水平有限)

(3)windows系统信息
   WMI 最初于1998年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在Windows 2000、 Windows XP和Windows Server 2003 系列操作系统中核心的管理支持技术。基于由 Distributed Management Task Force (DMTF) 所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。大多用户习惯于使用众多的图形化管理工 具来管理Windows资源,在WMI之前这些工具都是通过 Win32应用程序编程接口(Application ProgrammingInterfaces,API)来访问和管理Windows资源的。只要你熟悉系统编程你就知道API有多么重要。但是大多数脚本 语言都不能直接调用Win32 API,WMI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言实现常用的系统管理任务。利用WMI需要和脚本如WSH和VBScript结合起来,可以实现的功能大家可以看微软的MSDN文档。
  因此基本上windows系统能表现出来,你都可以通过这个模块获取,具体的可参考下面代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try :
     import  wmi
     import  win32api
except  ImportError:
    wmi =  None
import  sys,platform
import  subprocess
import  os


def  get_system_info(c,sys):
     if  sys ==  "Windows" :
         for  sys  in  c.Win32_OperatingSystem():
             print    "Version :\t%s"  % sys.Caption.encode(  "GBK" )
             print    "Vernum :\t%s"  % sys.BuildNumber
           
def  get_memory_info(c,sys):
     if  sys ==  "Windows" :
         for  mem  in  c.Win32_MemoryArray():
             print  '\t'  + str(mem.Caption)  +  '\t'  + str(mem.Name)
        cs = c.Win32_ComputerSystem()
        pfu = c.Win32_PageFileUsage()
        MemTotal = int(cs[  0 ].TotalPhysicalMemory)/  1024 / 1024
         print    "TotalPhysicalMemory :"  +  '\t'  + str(MemTotal) +  "M"
         #tmpdict ["MemFree"] = int( sys[0].FreePhysicalMemory)/1024
        SwapTotal = int(pfu[  0 ].AllocatedBaseSize)
         print    "SwapTotal :"  +  '\t'  + str(SwapTotal) +  "M"
         #tmpdict ["SwapFree"] = int( pfu[0].AllocatedBaseSize - pfu[0].CurrentUsage)
 
def  get_disk_info(c,sys,infolist):
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值