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获取任意xml节点值的方法
May 05 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 Python
Python内建模块struct实例详解
Feb 02 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 Python
基于python监控程序是否关闭
Jan 14 Python
Python递归调用实现数字累加的代码
Feb 25 Python
python pyqtgraph 保存图片到本地的实例
Mar 14 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
python中for语句简单遍历数据的方法
2015/05/07 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python实现基于POS算法的区块链
2018/08/07 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
python分布式计算dispy的使用详解
2019/12/22 Python
美国眼镜网站:LensCrafters
2020/01/19 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
房地产促销活动方案
2014/03/01 职场文书
体育运动口号
2014/06/09 职场文书
教师年度个人总结
2015/02/11 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
Django基础CBV装饰器和中间件
2022/03/22 Python