python代码学习-监控WIN磁盘脚本

安装wmi,pywin32模块

# -*- coding: utf-8 -*-
#import
########################################################################
import os, sys
import time
import wmi
########################################################################
#function
########################################################################
def get_disk_info():
     """
     获取物理磁盘信息。
     """
     tmplist = []
     c = wmi.WMI ()
     for physical_disk in c.Win32_DiskDrive ():
         tmpdict = {}
         tmpdict["Caption"] = physical_disk.Caption
         tmpdict["Size"] = long(physical_disk.Size)/1024/1024/1024
         tmplist.append(tmpdict)
     return tmplist
def get_fs_info() :
     """
     获取文件系统信息。
     包含分区的大小、已用量、可用量、使用率、挂载点信息。
     """
     tmplist = []
     c = wmi.WMI ()
     for physical_disk in c.Win32_DiskDrive ():
         for partition in physical_disk.associators ("Win32_DiskDriveToDiskPartition"):
             for logical_disk in partition.associators ("Win32_LogicalDiskToPartition"):
                 tmpdict = {}
                 tmpdict["Caption"] = logical_disk.Caption
                 tmpdict["DiskTotal"] = long(logical_disk.Size)/1024/1024/1024
                 tmpdict["UseSpace"] = (long(logical_disk.Size)-long(logical_disk.FreeSpace))/1024/1024/1024
                 tmpdict["FreeSpace"] = long(logical_disk.FreeSpace)/1024/1024/1024
                 tmpdict["Percent"] = int(100.0*(long(logical_disk.Size)-long(logical_disk.FreeSpace))/long(logical_disk.Size))
                 tmplist.append(tmpdict)
     return tmplist
if __name__ == "__main__":
     disk = get_disk_info()
     for x in disk:print x
     print ‘--------------------------------------‘
     fs = get_fs_info()
     for x in fs:print x

得到的结果是

{‘Caption‘: u‘TOSHIBA THNSNJ128GCSU‘, ‘Size‘: 119L}
{‘Caption‘: u‘WDC WD5000LPVX-22V0TT0‘, ‘Size‘: 465L}
--------------------------------------
{‘Caption‘: u‘C:‘, ‘Percent‘: 47, ‘UseSpace‘: 47L, ‘DiskTotal‘: 100L, ‘FreeSpace‘: 52L}
{‘Caption‘: u‘D:‘, ‘Percent‘: 60, ‘UseSpace‘: 60L, ‘DiskTotal‘: 100L, ‘FreeSpace‘: 39L}
{‘Caption‘: u‘E:‘, ‘Percent‘: 74, ‘UseSpace‘: 185L, ‘DiskTotal‘: 250L, ‘FreeSpace‘: 64L}
{‘Caption‘: u‘F:‘, ‘Percent‘: 70, ‘UseSpace‘: 81L, ‘DiskTotal‘: 115L, ‘FreeSpace‘: 34L}
时间: 2024-12-28 21:47:29

python代码学习-监控WIN磁盘脚本的相关文章

shell编程之【nagios自定义监控系统磁盘脚本】

之前写了一篇文章主要介绍nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346 下面这篇文章主要介绍nagios自定义监控系统磁盘的脚本实现. Nagios可以识别4种状态返回信息,即 0 表示状态正常(OK).1 表示出现警告(WARNING).2 表示出现非常严重的错误(CRITICAL),3 表示未知错误(UNKNOWN).Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来.我们就可以利用上面这个特性

3.2-nagios自定义监控系统磁盘脚本

一. 自定义nagios监控脚本 1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.sh vim  /usr/local/nagios/libexec/check_disk.sh 写入如下内容:(client上) #!/bin/bash row=`df -h |wc -l`             #输出的总行数 for i in `seq 2 $row`          #从第二行开始为真实的磁盘,因为第一行为抬头信息 do ava=`df -

python代码学习day01

这段时间在学习一些python的基础 贴上今天学的内容 以供以后回来看看,自己当时有多傻 1 #!/usr/bin/env python 2 #coding:utf8 3 4 print_num = 0 5 count = 0 6 while count < 100: 7 if count == print_num: 8 print "There you got the number:",count 9 choice = raw_input("Do you want t

nagios自定义监控系统磁盘脚本

客户端 1.创建脚本check_disk.sh [[email protected] ~]# vim /usr/lib64/nagios/plugins/check_disk.sh        #一般都放在这个路径下 #!/bin/bash row=`df -h|wc -l` for i in `seq 2 $row` do ava=`df -h|sed -n "$i"p|awk '{print $4}'`         #获取磁盘可用值 u_per=`df -h|sed -n &

python代码学习day03-序列化学习pickle及json

#!/usr/bin/env python #coding:utf8 import pickle,json import datetime dic1 = {'name':'alex', 'age':44, 'born':datetime.datetime.now()} #如果这种比较复杂的,json就无法解析,此时用pick则可以 #将内存的数据存下来,进行重用,可以有工pickle序列化 f = file("d:/test.pkl","w") pickle.dum

使用python写一个监控mysql的脚本,在zabbix web上自定义模板

##先使用MySQLdb的接口关联数据库. [[email protected] python]# cat check_Mysql_custom.py #!/usr/local/bin/python '''author = chenmingle''' '''Description:get mysql status''' import os import sys try:     import MySQLdb as mysql except Exception, e:     print e   

python代码学习-有关文件处理的方法

文件操作:os.mknod("test.txt")        创建空文件fp = open("test.txt",w)     直接打开一个文件,如果文件不存在则创建文件 关于open 模式: w 以写方式打开, a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打

python代码学习day03

有关列表的处理一例 #!/usr/bin/env python #coding:utf8 name = ['!', '#', '*', 'Eric', 'alex', 'jack', 'jack', 'a', 'b', 'c', 'd', 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6,2332,4,2,6,2] first_pos = 0 for i in range(name.count(2)): ##统计出有关2的总数有多少个 new_list = name[firs

教你用Python代码实现微信遥控电脑,简单骚操作值得学习

利用python设计一个程序来实现遥控电脑.功能简单,但是能够拓展的范围极大!功能电脑开机时,手机能收到通知 由手机发个特定的邮件,控制电脑关机 步骤 申请一个邮箱,并绑定自己的手机号码(163邮箱) 在这个邮箱中设置当有新的邮件就发短信通知 电脑开机时往这个邮箱发个邮件,我手机就会收到短信通知思路第二个步骤就是通过python 脚本,定时去检查163.com邮箱中是否有指定的邮件,如果有,则执行特定功能(我的是关机).申请成功后,手机也可以通过一个号码来发送邮件,如果想关机,就会用手机发个邮件