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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查分区已使用空间占总空间的百分比并发送告警邮件相关的知识,希望对你有一定的参考价值。

#!/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 = ‘[email protected]‘
            PASSWORD = ‘xxx‘
            HOST = ‘smtp.163.com‘
            SUBJECT = ‘%s的%s分区已使用空间占总空间的百分比超过了80%%,请登录服务检查!‘ % (server, partition)
            TO = ‘[email protected]‘
            FROM = ‘[email protected]‘
            TEXT = ‘RT‘
            sendmail(ACCOUNT, PASSWORD, HOST, SUBJECT, TO, FROM, TEXT)


本文出自 “昨夜星辰” 博客,请务必保留此出处http://yestreenstars.blog.51cto.com/1836303/1749827

以上是关于检查分区已使用空间占总空间的百分比并发送告警邮件的主要内容,如果未能解决你的问题,请参考以下文章

根目录/空间利用率百分百,怎么删除文件都不管用

如何监控linux阿里云磁盘空间

MS SQL 监控磁盘空间告警

监控cpu 内存 根分区使用率

监控Linux磁盘情况,进行邮件告警

监控Linux磁盘情况,进行邮件告警