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中zfill()方法的使用教程
May 20 Python
RC4文件加密的python实现方法
Jun 30 Python
Python之str操作方法(详解)
Jun 19 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
Sep 12 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
Django如何防止定时任务并发浅析
May 14 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
python 执行终端/控制台命令的例子
Jul 12 Python
django实现用户注册实例讲解
Oct 30 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
JavaScript 禁止用户保存图片的实现代码
2020/04/28 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
python能做什么 python的含义
2019/10/12 Python
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
全球最大的游戏市场:G2A
2018/07/05 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
工程造价管理专业大专生求职信
2013/10/06 职场文书
手术室护士自我鉴定
2013/10/14 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
合伙经营协议书
2014/04/18 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
MySQL系列之二 多实例配置
2021/07/02 MySQL
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js