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 相关文章推荐
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
PYTHON基础-时间日期处理小结
May 05 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Python bytes string相互转换过程解析
Mar 05 Python
django API 中接口的互相调用实例
Apr 01 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
基于python和flask实现http接口过程解析
Jun 15 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和XSS跨站攻击的防范
2007/04/17 PHP
php过滤危险html代码
2008/08/18 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
jquery简单体验
2007/01/10 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
微信小程序页面渲染实现方法
2019/11/06 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python3注册全局热键的实现
2020/03/22 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
李宁官方网店:中国运动品牌
2017/11/02 全球购物
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
企业办公室主任岗位职责
2014/02/19 职场文书
放飞理想演讲稿
2014/09/09 职场文书
2014年残联工作总结
2014/11/21 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
Django项目如何正确配置日志(logging)
2021/04/29 Python
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
tomcat下部署jenkins的方法
2022/05/06 Servers