Python实现的监测服务器硬盘使用率脚本分享
此脚本主要用于zabbix监控系统硬盘只用,适用于windows和linux系统,返回值为0为正常,有几个分区的硬盘剩余少于10G或低于10%就为报警阀值(windows的C盘和linux的根分区除外):
#!/bin/envpython
#-*-coding:utf-8-*-
##########################################################
#@Thisscriptisusedtocheckdiskfreespaceforzabbix
#@Contact: wangwei03@jb51.net
#@Name: disk.py
#@Function: checkdiskfreespaceforzabbix
#@Author: wangwei
##########################################################
importplatform
importcommands
defw_disk():
importwmi
c=wmi.WMI()
i=0
fordiskinc.Win32_LogicalDisk(DriveType=3):
a=int(disk.FreeSpace)/(1024*1024*1024)
b=int(100.0*long(disk.FreeSpace)/long(disk.Size))
ifdisk.Caption=="C:":
if(a<2)or(b<10):
i+=1
else:
i+=0
else:
if(a<10)or(b<10):
i+=1
else:
i+=0
printi
defL_disk():
free=commands.getstatusoutput('df-h|grepdev|egrep-v"tmp|var|shm"')
list=free[1].split('\n')
i=0
fordiskinrange(len(list)):
vd=list[disk][6:8]
a=list[disk].split()[3]
ifa[-1]=='T':
a=int(float(a[:-1]))*1024
else:
a=int(float(a[:-1]))
b=100-int(list[disk].split()[4][:-1])
ifvd=="da":
if(a<2)or(b<10):
i+=1
else:
i+=0
else:
if(a<10)or(b<10):
i+=1
else:
i+=0
printi
if__name__=="__main__":
os=platform.system()
ifos=="Windows":
w_disk()
elifos=="Linux":
L_disk()