- # -*- coding: gbk -*-
- 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()
本文转自 lover007 51CTO博客,原文链接:http://blog.51cto.com/wangwei007/741083,如需转载请自行联系原作者