博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python监控文件夹 && 发送邮件
阅读量:6573 次
发布时间:2019-06-24

本文共 1579 字,大约阅读时间需要 5 分钟。

直接上代码:

# python3# -*- coding: utf-8 -*-# 2017/06/16 by luohanfrom email.mime.text import MIMETextfrom email.header import Headerfrom email.utils import parseaddr, formataddrimport smtplibimport timeimport osdef get_size(start_path = '.'):    total_size = 0    for dirpath, dirnames, filenames in os.walk(start_path):        for f in filenames:            fp = os.path.join(dirpath, f)            total_size += os.path.getsize(fp)    return total_size / (1024 * 1024 * 1024)def _format_addr(s):    name, addr = parseaddr(s)    return formataddr((Header(name, 'utf-8').encode(), addr))def send_mail():    from_addr = '**@**.com'    passwd = '***'    to_addrs = ['123@qq.com', '234@qq.com']    msg = MIMEText('统计服务器/dev/shm内存报警', 'plain', 'utf-8')    msg['From'] = from_addr    msg['To'] = ','.join(to_addrs)    msg['Subject'] = Header('线上服务器报警', 'utf-8').encode()    try:        smtp_server = 'smtp.exmail.qq.com'        server = smtplib.SMTP_SSL(smtp_server, 465)        server.login(from_addr, passwd)        server.sendmail(from_addr, to_addrs, msg.as_string())        with open('/home/jobs/mail.log', 'a') as f:            print('{}: send success'.format(time.time()), file=f)    except smtplib.SMTPException as e:        with open('/home/jobs/mailerr.log', 'a') as f:            print('{}: send failed, {}'.format(time.time(), e), file=f)    finally:        server.quit()def check_dir_size(target_dir):    dirsize = get_size(target_dir)    # 超过12G,总大小16G    if dirsize > 12:        send_mail()check_dir_size('/dev/shm')

 

参考资料:

转载于:https://www.cnblogs.com/gattaca/p/6690781.html

你可能感兴趣的文章
从JDK源码角度看Short
查看>>
解密Angular WebWorker Renderer (二)
查看>>
parceljs 中文文档24小时诞生记
查看>>
五年 Web 开发者 star 的 github 整理说明
查看>>
Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
查看>>
ReactNative字体大小不随系统字体大小变化而变化
查看>>
中台之上(五):业务架构和中台的难点,都是需要反复锤炼出标准模型
查看>>
为什么中台是传统企业数字化转型的关键?
查看>>
使用模板将Web服务的结果转换为标记语言
查看>>
inno setup 打包脚本学习
查看>>
php 并发控制中的独占锁
查看>>
从pandas到geopandas
查看>>
用express搭建网站
查看>>
如何在 Swift 中进行错误处理
查看>>
[Leetcode] Factor Combinations 因数组合
查看>>
用tinypng插件创建gulp task压缩图片
查看>>
BetaMeow----利用机器学习做五子棋AI
查看>>
APM终端用户体验监控分析(下)
查看>>
React Native 0.20官方入门教程
查看>>
JSON for Modern C++ 3.6.0 发布
查看>>