码迷,mamicode.com
首页 > 其他好文 > 详细

检查分区已使用空间占总空间的百分比并发送告警邮件

时间:2016-05-12 14:14:06      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 作者:昨夜星辰
# 脚本作用:检查服务器的所有分区,如果分区已使用空间占总空间的百分比超过阀值便发送邮件到告警邮箱。
# 注意事项:该脚本只能在Linux系统下执行,适用于Python 2。
import os
import re
import smtplib
import string

# 获取系统所有分区
def getAllPartitionOfSystem():
    result = []
    f = os.popen(‘mount‘)
    text = f.readlines()
    f.close()
    for line in text:
        if re.search(r‘\bext\d‘, line):
            result.append(line.split()[2])
    return result

# 获取分区已使用空间占总空间的百分比
def getUsedOfPartition(path):
    sv = os.statvfs(path)
    free = (sv.f_bavail * sv.f_frsize)
    total = (sv.f_blocks * sv.f_frsize)
    used = (sv.f_blocks - sv.f_bfree) * sv.f_frsize
    return (float(used) / total) * 100

# 发送邮件
def sendmail(ACCOUNT, PASSWORD, HOST, SUBJECT, TO, FROM, TEXT):
    BODY = string.join((
        ‘From: %s‘ % FROM,
        ‘To: %s‘ % TO,
        ‘Subject: %s‘ % SUBJECT,
        ‘‘,
        TEXT
    ), ‘\n‘)
    server = smtplib.SMTP()
    server.connect(HOST, ‘25‘)
    server.login(ACCOUNT, PASSWORD)
    server.sendmail(FROM, [TO], BODY)
    server.quit()

if __name__ == ‘__main__‘:
    server = ‘XX服务器‘
    partitionList = getAllPartitionOfSystem()
    for partition in partitionList:
        percent = getUsedOfPartition(partition)
        if percent > 80:
            ACCOUNT = ‘xxx@163.com‘
            PASSWORD = ‘xxx‘
            HOST = ‘smtp.163.com‘
            SUBJECT = ‘%s的%s分区已使用空间占总空间的百分比超过了80%%,请登录服务检查!‘ % (server, partition)
            TO = ‘xxx@163.com‘
            FROM = ‘xxx@163.com‘
            TEXT = ‘RT‘
            sendmail(ACCOUNT, PASSWORD, HOST, SUBJECT, TO, FROM, TEXT)

检查分区已使用空间占总空间的百分比并发送告警邮件

标签:

原文地址:http://blog.csdn.net/yestreenstars/article/details/51361376

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!