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使用PDFMiner解析PDF代码实例
Mar 27 Python
利用python实现xml与数据库读取转换的方法
Jun 17 Python
获取python的list中含有重复值的index方法
Jun 27 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 Python
python3 简单实现组合设计模式
Jul 02 Python
python创建文本文件的简单方法
Aug 30 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 Python
Python中itertools库的四个函数介绍
Apr 06 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
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
2011/11/10 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
Python实现自动签到脚本功能
2020/08/20 Python
Python类class参数self原理解析
2020/11/19 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
英文版银行求职信
2013/10/09 职场文书
土木工程专业个人求职信
2013/12/30 职场文书
前台文员我鉴定
2014/01/12 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
期末考试复习计划
2015/01/19 职场文书
详解Python牛顿插值法
2021/05/11 Python
Redis全局ID生成器的实现
2022/06/05 Redis
Python中requests库的用法详解
2022/06/05 Python