zoukankan      html  css  js  c++  java
  • .windows模拟linux命令iostat的显示

    脚本如下:

    #!/usr/bin/env python
    #coding:utf-8
    import win32com.client
    import time
    
    def disk_status():
        try:
            while 1:
                strComputer = "."
                objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
                objSWbemServices = objWMIService.ConnectServer(strComputer,"rootcimv2")
                colItems = objSWbemServices.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfDisk_LogicalDisk")
                print "time:" + time.strftime("%Y-%m-%d %H:%M:%S")
                print "Device:" +'	' + "tps" +'	' + "kB_read/s" +'	' + "kB_wrtn/s" +'	' + "kB_read" +'	' + "kB_wrtn" +'	' +"Disk_free"
                for objItem in colItems:
                    if objItem.Name != '_Total':
                        print objItem.Name +'	' + str(objItem.DiskTransfersPersec) +'	' + "%0.1f" % (float(objItem.DiskReadBytesPersec)/1024) +'	' + '	' + "%0.1f" % (float(objItem.DiskWriteBytesPersec)/1024) +'	' + '	' +  "%0.1f" % (float(objItem.DiskReadsPersec)/1024) +'	' + "%0.1f" % (float(objItem.DiskWritesPersec)/1024) +'	' + "%0.0f%%" % objItem.PercentFreeSpace
    
                        #Device: 显示磁盘名称
                        #tps: 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请求可被并为对磁盘的一个单一 I/O 请求。传输具有中等的大小。
                        #kB_read/s: 每秒从磁盘读取的数据量,单位为KB。
                        #kB_wrtn/s: 每秒从写入磁盘的数据量,单位为KB。
                        #Kb_read: 读取的 KB 总数。
                        #Kb_wrtn: 写入的 KB 总数。
                        #DiskTransfersPerSec:每秒磁盘传输次数。
                        #DiskReadBytesPerSec:每秒从磁盘读取得数据量,单位为Byte。
                        #DiskWriteBytesPerSec:每秒从磁盘写取得数据量,单位为Byte。
                        #PercentFreeSpace:可用磁盘百分比
                print ''
                time.sleep(2)
        except (EOFError,KeyboardInterrupt):
            pass
    if __name__ == '__main__':
        disk_status()

    执行结果:

    time:2018-05-06 12:04:32
    Device:    tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn    Disk_free
    C:    171    437.6        700.2        0.1    0.1    60%
    D:    0    0.0        0.0        0.0    0.0    4%
    E:    0    0.0        0.0        0.0    0.0    28%
    F:    0    0.0        0.0        0.0    0.0    16%
    G:    0    0.0        0.0        0.0    0.0    31%
    H:    0    0.0        0.0        0.0    0.0    31%
    HarddiskVolume1    0    0.0        0.0        0.0    0.0    97%
    HarddiskVolume14    0    0.0        0.0        0.0    0.0    47%
    HarddiskVolume15    0    0.0        0.0        0.0    0.0    96%
    HarddiskVolume17    0    0.0        0.0        0.0    0.0    96%
    HarddiskVolume19    0    0.0        0.0        0.0    0.0    96%
    HarddiskVolume21    0    0.0        0.0        0.0    0.0    96%
    HarddiskVolume23    0    0.0        0.0        0.0    0.0    96%
    HarddiskVolume5    0    0.0        0.0        0.0    0.0    41%
    HarddiskVolume6    0    0.0        0.0        0.0    0.0    17%

    参考:http://blog.51cto.com/wangwei007/741083

    安装win32com.client

    https://github.com/mhammond/pywin32/releases

  • 相关阅读:
    openstack nova创建虚拟机过程(DEBUG)从接收到cli RESTFul请求到给scheduler发送rpc消息
    openstack源码阅读基础:openstack中Nova组件RESTful请求的具体处理函数确定
    博客园第一搏——Html5 JumpStart学习笔记1:Semantic Structure
    我的CSDN博客http://blog.csdn.net/kuangjian007,欢迎骚扰!
    django第一课:基本介绍
    pku 1142 Smith Number
    使用Eclipse开发X3D
    javascript树形控件第二版
    三种方式获得int的size
    细节决定成败
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/8997836.html
Copyright © 2011-2022 走看看