免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 14162 | 回复: 37
打印 上一主题 下一主题

Python 监控服务并邮件通知报警程序交流 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-23 19:14 |只看该作者 |倒序浏览
目的:
    通过Python 调用ftp smtp 模块进行服务监控并对服务停止停止情况和恢复情况进行邮件通知。
目前遇到的故障:
    如果登陆FTP 服务出现异常后,程序可以通过邮件完成对管理员的通知,但是在服务恢复后,程序并不能继续进行服务状况检测,仍判断服务处于故障状况。请各位仁兄帮忙看看,小弟不胜感激……
程序流程图见附件
代码

#!/usr/bin/env python
#coding=gbk
#purpos:To moitor service and need email notice,Notice the master who is the service`s monitor.
#version:1.0
#date:09/04/2008
#writerayangjing
#mail:yangjing0617@gmail.com
import thread, time
from ftplib import FTP
import smtplib
import time
import os
import sys
server= '127.0.0.1'
server1= '127.0.0.1'
username='diandian'
loginpass='yangjing'
date=time.ctime()

log="c:\py\log.txt"
mail="c:\py\mail.txt"

flag = 0

while True:
    i = 0 #服务检测是失败技术
    j = 0 # 检查用计时单位
    while j<4:
        print "test j  is %d" %j
      
        try:
               ftp=FTP(server)
               ftp.login(username,loginpass)
               ftp.quit()
               time.sleep(5)
               print "server %s ok" %time.ctime()
        except:
               i=i+1
               print "failed i = %d " %i
               time.sleep(5)
        j = j+1
   
   
        if i==4:
                print "failed "
                try:
                    ftp=FTP(server1)
                    ftp.login(username,loginpass)
                    ftp.quit()
                    print "chceking server"
                    i=0
                    flag=2
                    print "erroe checking flag is %d" %flag
                    print "erroe checking i is %d" %i
                except:
                    pass               
                if flag==0:
                    flag = 1
                    print "failed and send email "
                        
        elif i==0:
                print "success "
        elif flag== 2:
                flag = 3
                print "recure and send email "
        if flag == 1:
                smtpServer = 'mx0.qq.com'
                fromaddr = 'yangj@ibm.com'
                toaddrs = 'admin@qq.com'
                subject ='公司网络报警'
                txt='%s 无法到达公司网络 ' %date
                date=time.ctime()
                msg = """FROM: %s\nTO: %s\nSubject: %s\ndate: %s\n\n
                %s""" %(fromaddr,toaddrs,subject,date,txt)
                server = smtplib.SMTP(smtpServer)
                server.sendmail(fromaddr, toaddrs, msg)
                server.quit( )
                flag  = 2
                print "flag is %d" %flag
        elif flag== 3 :
                smtpServer = 'mx0.qq.com'
                fromaddr = 'yangj@ibm.com'
                toaddrs = 'admin@qq.com'
                subject ='公司网络恢复'
                txt='%s 已恢复网络 ' %date
                date=time.ctime()
                msg = """FROM: %s\nTO: %s\nSubject: %s\ndate: %s\n\n
                %s""" %(fromaddr,toaddrs,subject,date,txt)
                server = smtplib.SMTP(smtpServer)
                server.sendmail(fromaddr, toaddrs, msg)
                server.quit( )
                flag  = 0



[ 本帖最后由 stionmel 于 2008-9-24 14:28 编辑 ]

warmning.png (41.34 KB, 下载次数: 108)

warmning.png

论坛徽章:
0
2 [报告]
发表于 2008-09-23 19:17 |只看该作者
极度郁闷中

论坛徽章:
0
3 [报告]
发表于 2008-09-24 00:01 |只看该作者
没人研究????

论坛徽章:
0
4 [报告]
发表于 2008-09-24 00:01 |只看该作者
自己顶,希望学习PYHTON 的朋友们都能来关注一下。

论坛徽章:
0
5 [报告]
发表于 2008-09-24 09:08 |只看该作者

感谢楼主分享。图不错。呵呵

论坛徽章:
0
6 [报告]
发表于 2008-09-24 11:02 |只看该作者
还是没人研究????

论坛徽章:
0
7 [报告]
发表于 2008-09-24 12:23 |只看该作者
每日一顶,不信没人来管!!!!!!!!!!!!

论坛徽章:
0
8 [报告]
发表于 2008-09-24 14:13 |只看该作者

回复 #7 stionmel 的帖子

flag0~4是封闭循环么?
有错误提示否?

论坛徽章:
0
9 [报告]
发表于 2008-09-24 14:21 |只看该作者
原帖由 broader 于 2008-9-24 14:13 发表
flag0~4是封闭循环么?
有错误提示否?

flag 0 ~4 是做邮件发送标志位

论坛徽章:
0
10 [报告]
发表于 2008-09-24 14:23 |只看该作者
个人意见:对代码进行重构,定义几个函数完成不同的功能,而不要将所有的逻辑都放到一起。
你这一个大while循环里又是i,j,又是flag的,看着眼晕,想帮你debug也不容易。

P.S. 图的确画得不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP