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

#!/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)
时间: 2024-10-10 01:01:48

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

通过Python获取Linux系统所有分区和分区已使用空间占总空间的百分比

#!/usr/bin/env python # -*- coding: utf-8 -*- # 作者:昨夜星辰 # 脚本作用:获取系统所有分区和分区已使用空间占总空间的百分比. # 注意事项:该脚本只能在Linux系统下执行,适用于Python 2. import os import re # 获取系统所有分区 def getAllPartitionOfSystem():     result = []     f = os.popen('mount')     text = f.readlin

LVM实现将2块磁盘总空间“合二为一”并挂载到同一目录

需求场景 将MySQL主机的2块18T的数据盘空间全部"合并"后挂载到/mysql_data目录下,要求文件系统格式化为xfs:已有关键信息梳理如下: 需要挂载的数据盘 /dev/sdb:18T /dev/sdc:18T 文件系统:xfs 挂载目录:/mysql_data 操作系统环境 OS版本:CentOS 7.5 lvm版本:lvm2 实现方法 要想实现此需求,可使用LVM逻辑卷管理来做到. 实现步骤 磁盘分区 在将磁盘或者磁盘分区用作物理卷(PV)之前,需要对其进行初始化工作,即

在程序运行过程中,对象所占的空间是不能随时释放的

使用类名定义的对象(请查看:C++类的声明和对象的定义)都是静态的,在程序运行过程中,对象所占的空间是不能随时释放的.但有时人们希望在需要用到对象时才建立对象,在不需要用该对象时就撤销它,释放它所占的内存空间以供别的数据使用.这样可提高内存空间的利用率. 在C++中,可以使用new运算符动态地分配内存,用delete运算符释放这些内存空间(请查看:C++动态分配内存(new)和撤销内存(delete)).这也适用于对象,可以用new运算符动态建立对象,用delete运算符撤销对象. 如果已经定义

系统jvm的stack空间占满了,爆出了stackOverflow异常,修改-Xss512k 参数来解决

此bug的最大难题是,在debug启动时就没有问题了,在正常启动时就报错.有些人有这个问题,有些同学运行就没有这个问题.这可麻烦了.朋友们以后可以以此为特征,诊断类似的问题. **Spring Mybatis 集成错误:**Exception in thread "main" java.lang.**NoClassDefFoundError**: Could not initialize class org.springframework.beans.factory.BeanCreat

记一次Linux磁盘空间占满无法删除的故障

问题介绍 近日发现公司服务器的磁盘空间越来越满,感觉快要爆掉的感觉,于是开始着手清清磁盘空间,但是找来找去,发现根目录已经使用了90%以上,可是/下的目录占的空间都非常小,始终找不到占满磁盘空间的大头在哪里. 思考解决方案 按照网上的说法,是因为文件已经删除,但是使用文件的进程还存在,导致空间无法释放.运行如下命令后(最终无效). lsof | grep deleted | awk '{print $2}' | xargs kill -9 因为系统有单独挂载的文件夹,所以想把系统分区还原成还没挂

C++中的类所占内存空间总结

C++中的类所占内存空间总结 最近在复习c++的一些基础,感觉这篇文章很不错,转载来,大家看看! 类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的. 摘抄部分: 成员函数还是以一般的函数一样的存在.a.fun()是通过fun(a.this)来调用的.所谓成员函数只是在名义上是类里的.其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码.而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table

du--查看文件or目录占磁盘空间

du  DIR:查看目录及目录下每个子目录和文件占磁盘空间的大小,都会一一显示出来 options:-h  以易读的方式显示 -s  只显示这个目录占磁盘空间的大小 -b  以byte方式显示大小,这时候是显示了文件or目录的真实大小 --max-depth=num ,只统计几级目录,1表示只统计该目录下的文件

C++ - 类的虚函数\虚继承所占的空间

类的虚函数\虚继承所占的空间 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24236469 char占用一个字节, 但不满足4的倍数时, 会进行数据对齐, 使用4的倍数的字节(byte). GCC: GCC中, 不管是虚函数还是虚继承, 都须要将指针存储在虚函数表(virtual function table), 占用4个字节. 继承会继承基类的数据, 和虚函数表, 即继承基类的空间. 代码: /* * test.cpp *

iOS获取文件夹中存储空间的大小、手机剩余空间大小、手机总空间大小 工具

// // DiskSpaceTool.h // ScreenRecordMaster // // Created by feimo on 15/7/24. // Copyright (c) 2015年 feimo. All rights reserved. // #import <Foundation/Foundation.h> #include <sys/param.h> #include <sys/mount.h> @interface DiskSpaceTool