python监控文件并且发送告警邮件

本文实例为大家分享了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使用QQ邮箱发送Email的方法实例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python实现监控某个服务 服务崩溃即发送邮件报告

    前言:最近我们的升级服务器有点不太稳定,经常崩溃掉.然后客户连接不上,跟我们反馈才知道.所以写这个脚本的目的就是为了比客户提前知道升级服务的运行状况,一旦崩溃掉,就能第一时间登录上去,开启服务,避免客户投诉. 目标:Python实现监控某个服务,服务崩溃发送邮件报告. 原理:服务对应着端口,服务关闭的时候端口也会关闭.所以可以简化为监控某个端口,端口关闭发送邮件报告 方法:需要用到简单邮件服务器和端口探测的方法 废话不多说直接上代码: #-*- encoding:utf-8 -*- #!/usr

  • 利用Python自动监控网站并发送邮件告警的方法

    前言 因为有一些网站需要每日检查是否有问题,所以需要一个报警监控的机制,这个需要你指定你发送的邮箱和你接收的邮箱,就可以做到对网站自动监控了. 这里用的是python3.5 需要安装的插件: 1.smtplib:发邮件需要用到 2.pycurl:访问网站时会需要用到 3.linecache:在读取txt网站清单时需要用到 具体思路: python程序从txt里面批量读取到网站的信息,通过Curl.py模拟浏览器去访问网站,并且把访问的结果写入到以自己的网站名称-日期.txt格式的文件中记录;有几

  • python实现自动发送报警监控邮件

    本文实例为大家分享了python自动发送报警监控邮件 的具体代码,供大家参考,具体内容如下 因为有一些日常任务需要每日检查日否执行正确,所以需要一个报警监控的机制,这个需要你指定你发送的邮箱和你接收的邮箱,就可以使用了. 这四个需要填写一下,我们使用的qq企业邮箱所以host为smtp.exmail.qq.com mail_host=""  mail_user=""  mail_pass=""  mail_postfix=""

  • python监控网站运行异常并发送邮件的方法

    本文实例讲述了python监控网站运行异常并发送邮件的方法.分享给大家供大家参考.具体如下: 这是一个简单的python开发的监控程序,当指定网页状态不正常是通过smtp发送通知邮件 复制代码 代码如下: #!/usr/bin/env python # -*- coding: UTF-8 -*- #author  libertyspy import socket import smtplib import urllib mail_options = {     'server':'smtp.qq

  • python发送告警邮件脚本

    python脚本为敏捷开发脚本,在zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法. 脚本如下: #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys mail_host = 'smtp.126.com' mail_user = 'username' mail_pass = 'passwd' mail_postfix = '126.

  • python监控文件并且发送告警邮件

    本文实例为大家分享了python监控文件并发送邮件的具体代码,供大家参考,具体内容如下 一.配置文件 import time,datetime TODAY = time.time() TIME_PATH = str(TODAY.year) + "/" + str(TODAY.month) + "/" + str(datetime.datetime.now().date()) MONITOR_CONFIG = { "monitor_file":[

  • SQL Server Alert发送告警邮件少了的原因

    最近突然发现我们部署在数据库上面的告警(Alert),当错误日志里面出现错误时,并不是每个错误日志都会发送邮件出来.如下所示,设置了告警"SQL Server Severity Event 14" USE [msdb] GO IF NOT EXISTS(SELECT 1 FROM msdb.dbo.syscategories WHERE NAME='DBA_MONITORING' AND category_class=2) BEGIN EXEC msdb.dbo.sp_add_cate

  • python实现文件+参数发送request的实例代码

    需求: 该接口,含两个参数,一个是file,一个是paperName.其中file为上传的文件.content-type为form-data. 根据python中的request源代码,可知,发送一个request,可以传递的参数有很多.而我们这次主要用到的就是files,当然method.url.headers.及data/json也是每次发送request必备的. 主要的实现方式: # 用二进制的方式打开需上传的文件. f = open(filename, "rb") file =

  • 使用Python监控文件内容变化代码实例

    利用seek监控文件内容,并打印出变化内容: #/usr/bin/env python #-*- coding=utf-8 -*- pos = 0 while True: con = open("a.txt") if pos != 0: con.seek(pos,0) while True: line = con.readline() if line.strip(): print line.strip() pos = pos + len(line) if not line.strip(

  • python监控文件或目录变化

    本文实例实现的功能是监控一个文件或目录的变化,如果有变化,把文件上传备份至备份主机,并且要监控上传过程是否有问题等,具体内容如下 #!/usr/bin/env python #coding=utf-8 # #Status wd gs/ccs sql file changed #文件有变化上传至备份主机,上传之后验证文件是否正确 # import paramiko,os,sys,datetime,time,MySQLdb from pyinotify import WatchManager, No

  • 用Python登录Gmail并发送Gmail邮件的教程

    这篇快文介绍了使用Gmail作为您的e-mail服务器,通过Python的内置SMTP库发送电子邮件.它并不复杂,我保证. 下面是如何在Python中登录GMail: import smtplib # The below code never changes, though obviously those variables need values. session = smtplib.SMTP('smtp.gmail.com', 587) session.ehlo() session.star

  • 利用Python实现自动化监控文件夹完成服务部署

    目录 1. 准备 2. 实战一下 3. 总结 大家好,我是安果! 最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的 /tmp 目录下,然后进入应用服务器中,使用 mv 命令将压缩文件移动到 Nginx 项目设定目录,最后使用 unzip 命令解压文件,以此完成项目的部署 仔细分析,大部分操作都是重复性的动作,人工去完成这些操作会大大降低工作效率 本篇文章将介绍如何利用 Python 监控文件夹,以此辅助完成服务的部署动作 1. 准备 这里要介绍一个 Python 依赖

  • python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警

       使用Windows的wmic命令,获取可执行文件的运行状况.文件路径.PID,如果可执行文件挂掉,就重启并邮件告警. 因为监控的可执行文件的文件名一样,不好区分,所以我使用文件的绝对路径为标准来判断是否正常运行,代码及详细解释如下: # -*- coding: utf-8 -*- import os import win32api import smtplib from email.mime.text import MIMEText def get_pidWay(file_name): e

随机推荐