python监控网页状态

最近公司erp服务器无规律、不间断、时不时抽风,往往都是挂了快个把小时后其它部门的人才打电话过来说服务器挂了。于是用python写了一个简单的网页监控。程序主要监控网页状态码,200为正常,否则视为服务器挂了。每隔70秒查询一次,若发现三次连续的查询中都报错误,则通过预先设定的邮箱发送警告邮件。邮件发送后隔30分钟再次监控设定网页。

#coding:utf-8
#author:ljc
#python verson 2.7.9

import smtplib
import urllib
import time

def sendmail():
    mail_to = smtplib.SMTP(‘smtp.126.com‘,25)         #设置邮件发送服务器
    mail_to.login("[email protected]","[email protected]#")      #设置发送邮件的帐号,密码
    msg = """From: system <[email protected]>
To: <[email protected]>
Subject: webserver_down

web server is down
"""
    mail_to.sendmail(‘[email protected]‘,‘[email protected]‘,msg)
    mail_to.close()

if __name__ == ‘__main__‘:    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘server monitor is running‘
    while 1:
        count=0
        error_status_count=0
        while count<3:
            time.sleep(70)      #每隔70秒监控一次服务器
            try:
                status=urllib.urlopen("http://192.168.0.8").code   #收集监控网址的网页状态码
                if status==200:
                    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘web server is functional‘
                if status<>200:
                    error_status_count+=1
                    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘web servier is down ,error status count:‘,error_status_count,‘status number‘,status
            except:
                error_status_count+=1    #网页状态错误次数进行累加
                print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),‘web servier is down ,error status count:‘,error_status_count
            count+=1
        if error_status_count>=3: #网页状态错误超过3次自动发送报警邮件
            print ‘error status count is :‘,error_status_count,‘sending email,the program wiil try to monint the server after half an hour‘
            sendmail()
            time.sleep(1800)      #邮件发送后半小时再后再次监控网页
    
时间: 2024-11-03 23:15:10

python监控网页状态的相关文章

Powershell 之多线程监控网页状态

#设置线程数量 $throttleLimit = 10 $SessionState = [system.management.automation.runspaces.initialsessionstate]::CreateDefault() $Pool = [runspacefactory]::CreateRunspacePool(1, $throttleLimit, $SessionState, $Host) $Pool.Open() #url configure $urlFile="D:\

用python监控您的window服务

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://world77.blog.51cto.com/414605/782935 最近比较烦,研发给的pc服务版本在虚拟机上已经开始给客户使用了,服务老是莫名的死翘翘,客户不停的电话给我,搞的我心情很差,于是在一个下午,静下心来,用python写了个简单的监控进程的脚本,当发现进程消失的时候,立即调用服务,开启服务... 脚本的工作原理是这样的:脚本读取配置文件,读取预先配置好的调用系统

python监控TCP连接数

python监控TCP连接数 先来了解下/proc/net/tcp这个文件,这里记录的是ipv4下所有tcp连接的情况,包括下列数值 sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 备注:文件中都是用的16进制 我们关注st这列, 状态码对照表 code 状态码 描述 00 ERROR_STATUS 01 TCP_ESTABLISHED 代表一个打开的连接 02 TC

zabbix监控php状态

通过nginx调用php-fpm来查询php的状态信息 首先,在php的配置文件中添加一行 vim /usr/local/php/etc/php-fpm.conf pm.status_path = /phpfpmstatus 保存后重启php-fpm 在nginx配置文件中添加代码 server { listen localhost:80; server_name localhost; location /nginxstatus { stub_status on; access_log off;

Zabbix 监控 Nginx 状态

1.获取 Nginx 状态条件( 需要nginx安装模块) [localhost]#/usr/local/nginx/sbin/nginx -V nginx version: nginx/1.8.0built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_sta

iOS边练边学--AFNetWorking框架GET、Post、Download、Upload,数据解析模式以及监控联网状态

一.AFNETWorking简单使用 get请求 get请求,以后经常用NSURLSession底层的写的部分 简单的post请求 用post请求下载文件,方法很多,还可以通过upload任务来执行 download任务 二.框架中的数据解析,默认是将数据按照json来解析,设置方法 三.AFN框架监控联网状态

python抓网页数据【ref:http://www.1point3acres.com/bbs/thread-83337-1-1.html】

前言:数据科学越来越火了,网页是数据很大的一个来源.最近很多人问怎么抓网页数据,据我所知,常见的编程语言(C++,java,python)都可以实现抓网页数据,甚至很多统计\计算的语言(R,Matlab)都有可以实现和网站交互的包.本人试过用java,python,R抓网页,感觉语法各有差异,逻辑上是一样的.我准备用python来大概讲讲抓网页是什么概念,具体的内容要自己看手册或者google别人的博客,这里算是抛砖引玉了.水平有限,出现错误或者有更好的办法,欢迎讨论.. more info o

C#实现对站点、程序池状态的监控,以及URL能正常返回的监控,状态异常,邮件预警

需求:自动化组提出需要,要对IIS上的站点进行监控,异常停止后报警 需求分析:这站点的运行正常需要多方面的监控,如站点,程序池,资源,所以针对这需求做了三方面的监控. 站点状态的监控 站点对应的程序池的监控 URL的监控,监控url能返回200的状态码 数据库设计: 页面展示: 配置list页 配置Detail页 预警邮件: 核心代码: 配置页面代码 index.cshtml @model IEnumerable<Ctrip.Hotel.QA.Platform.Data.Dao.EnvRunSt

top命令详解 动态的监控网络状态

1.top命令:可以动态的监控cpu 参数说明:当前时间 系统启动多久了 当前登录的人数 当前系统的负载情况(三个数和/3>0.6就危险了) 目前有多少进程数 :休眠的进程数,运行的进程数,僵死进程数(已没有用了,但是还是占据内存),静止状态下的进程数 cpu的状态(idle cpu的资源空间大小) Mem内容使用情况:内存总数,正在被使用,空闲的, Swap(虚拟内存):真实内存 使用内存 以下是top命令: top -d 10 :设置动态监控时间10s top -u user :设置要监控的