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批量同步web服务器代码核心程序
Sep 01 Python
在Python程序中进行文件读取和写入操作的教程
Apr 28 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
django将图片上传数据库后在前端显式的方法
May 25 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
python 自动识别并连接串口的实现
Jan 19 Python
Python torch.flatten()函数案例详解
Aug 30 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&java(二)
2006/10/09 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
javascript 写类方式之九
2009/07/05 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python3 配置logging日志类的操作
2020/04/08 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
复核员上岗演讲稿
2014/01/05 职场文书
联谊活动策划书
2014/01/26 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
保安2014年终工作总结
2014/12/06 职场文书
综合实践活动报告
2015/02/05 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android
python高温预警数据获取实例
2022/07/23 Python