.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,"root\cimv2") colItems = objSWbemServices.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfDisk_LogicalDisk") print "time:" + time.strftime("%Y-%m-%d %H:%M:%S") print "Device:" +'\t' + "tps" +'\t' + "kB_read/s" +'\t' + "kB_wrtn/s" +'\t' + "kB_read" +'\t' + "kB_wrtn" +'\t' +"Disk_free" for objItem in colItems: if objItem.Name != '_Total': print objItem.Name +'\t' + str(objItem.DiskTransfersPersec) +'\t' + "%0.1f" % (float(objItem.DiskReadBytesPersec)/1024) +'\t' + '\t' + "%0.1f" % (float(objItem.DiskWriteBytesPersec)/1024) +'\t' + '\t' + "%0.1f" % (float(objItem.DiskReadsPersec)/1024) +'\t' + "%0.1f" % (float(objItem.DiskWritesPersec)/1024) +'\t' + "%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