python监控文件并且发送告警邮件


Posted in Python onJune 21, 2018

本文实例为大家分享了python监控文件并发送邮件的具体代码,供大家参考,具体内容如下

一、配置文件

import time,datetime 
 
TODAY = time.time() 
TIME_PATH = str(TODAY.year) + "/" + str(TODAY.month) + "/" + str(datetime.datetime.now().date()) 
 
MONITOR_CONFIG = { 
 "monitor_file":[ 
  {"key":"py_distribute-datacollect","path":"/home/vagrant/py_distribute/data/" + TIME_PATH + "_error.txt","max_size":100}, 
 ], 
 "send_account":"xxxx@qq.com", 
 "license_code":"feruwfpsiwkuibge", # 授权码 
 "rec_account":["xxxx@qq.com"], 
 "host":"smtp.qq.com", 
 "port":465, 
 "sleep_time":60, 
}

二、监控

#-*- encoding: utf8 -*- 
# 腾讯邮箱授权码 
# feruwfpsiwkuibge 
 
import smtplib 
import logging 
import time 
import os 
from email.mime.text import MIMEText 
from monitor_config import MONITOR_CONFIG 
 
FORMAT = '[%(asctime)-15s] %(message)s' 
logging.basicConfig(filename = "monitor.txt", level = logging.DEBUG, filemode = "a", format=FORMAT) 
 
def get_file_size(file_name): 
 if os.path.exists(file_name): 
  bytes_size = float(os.path.getsize(file_name)) 
  kb = bytes_size/1024 
  mb = kb/1024 
  return mb 
 return 0 
 
def send_email(file_name,key): 
 msg = MIMEText(file_name+"文件超过限制,可能存在异常,请处理。项目为:"+key) 
 msg = [key] 
 msg["From"]= MONITOR_CONFIG["send_account"] 
 msg["To"] = MONITOR_CONFIG["rec_account"] 
 try: 
  s = smtplib.SMTP_SSL(MONITOR_CONFIG["host"],MONITOR_CONFIG["port"]) 
  s.login(MONITOR_CONFIG["send_account"],MONITOR_CONFIG["license_code"]) 
  s.sendmail(MONITOR_CONFIG["send_account"],MONITOR_CONFIG["rec_account"],msg.as_string()) 
  s.quit() 
  logging.info(file_name + "警告发送成功") 
 except Exception as e: 
  logging.exception(e) 
 
# check 
while True: 
 for file in MONITOR_CONFIG["monitor_file"]: 
  file_size = get_file_size(file["path"]) 
  if file_size > file["max_size"]: 
   send_email(file["path"],file["key"]) 
 logging.info("检查完毕") 
 time.sleep(MONITOR_CONFIG["sleep_time"])

三、需在QQ邮箱设置开启POP3/SMTP服务

python监控文件并且发送告警邮件

四、参考

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
利用Python获取操作系统信息实例
Sep 02 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
python docx 中文字体设置的操作方法
May 08 Python
python人民币小写转大写辅助工具
Jun 20 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
使用Python封装excel操作指南
Jan 29 Python
python3实现磁盘空间监控
Jun 21 #Python
Python实现的远程登录windows系统功能示例
Jun 21 #Python
python3监控CentOS磁盘空间脚本
Jun 21 #Python
python实现猜单词小游戏
May 22 #Python
python2.x实现人民币转大写人民币
Jun 20 #Python
python实现猜数字小游戏
Mar 24 #Python
python实现人民币大写转换
Jun 20 #Python
You might like
封装一个PDO数据库操作类代码
2009/09/09 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
Python多线程爬虫简单示例
2016/03/04 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
Linux的文件类型
2016/07/05 面试题
三月雷锋月活动总结
2014/07/03 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏
Python实现信息管理系统
2022/06/05 Python
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS