前面已经写过Python3发邮件,Python发微信的文章了。直接导入即可。

import configparser,requests
from time import sleep
import WeChat,Mail,datetime class checkurl(object):
def __init__(self,file):
self.file=file
self.cfg=configparser.ConfigParser() def cfg_load(self):
self.cfg.read(self.file)
self.allurl=self.cfg.items('yuming')
self.reload=self.cfg.get('time','reload')
self.mailto=self.cfg.items('mailto') def sendmessage(self,errinfo):
wechat.send('@all',errinfo)
for key,values in self.mailto:
mail.send(values,errinfo,'url访问失败报警') def senderror(self,errcont):
enow=datetime.datetime.now()
now=enow.strftime('%Y-%m-%d %H:%M:%S')
errfile=open('url.log','a')
errfile.write(now)
errfile.write(str(errcont))
errfile.write('\n')
errfile.close() def cfg_dump(self):
while True:
for k,v in self.allurl:
checknum=0
#设置重试错误次数
while checknum < 5:
try:
res=requests.get(v,timeout=20)
print(v,res.status_code)
res.close()
if res.status_code >= 400:
errinfo=v+' '+str(res.status_code)
self.sendmessage(errinfo)
self.senderror(errinfo)
break
except:
errinfo=v+' is error'
print(errinfo+'\r\n请稍等,正在第',checknum+1,'次重试...')
sleep(1)
if checknum == 4:
print('重试仍然无法连接,正在发送微信和邮件报警...')
self.sendmessage(errinfo)
self.senderror(errinfo)
checknum=checknum+1
print('-----------------------------------')
nextcheck=0
while nextcheck < int(self.reload):
print('距离下次检测还剩',int(self.reload)-nextcheck,'秒')
sleep(1)
nextcheck=nextcheck+1 if __name__ =='__main__':
mail=Mail.sendmail()
wechat=WeChat.WeChat()
check=checkurl('yuming.ini')
check.cfg_load()
check.cfg_dump()

  

下面是yuming.ini的配置

[yuming]
yuming1=https://www.baidu.com
yuming2=http://www.qq.com
yuming3=http://www.163.com [time]
reload=60 [mailto]
mail1=guoyabin@ccln.gov.cn
mail2=guoyabin@bj1921.com

  

python3监控网站状态的更多相关文章

  1. shell脚本监控网站状态

    shell脚本监控网站状态 #!/bin/sh date=`date +"%Y%m%d-%H%M"` title="status" contentFail=&q ...

  2. shell批量监控网站状态码

    shell批量监控网站状态码脚本,使用curl很慢.等我学完其他方式,在来更新. #!/bin/bash #GuoYabin yuming=`/bin/cat yuming.txt` for i in ...

  3. linux shell脚本: 自动监控网站状态并发送提醒邮件

    1.创建监控脚本:$ vi /alidata/shell/webcheck.sh #!/bin/sh weblist="/alidata/shell/weblist.txt" my ...

  4. 监控Linux服务器网站状态的SHELL脚本

    1,监控httpd状态码的shell脚本代码. #!/bin/sh #site: www.jquerycn.cn # website[0]=www.jquerycn.cn/chuzu/' #网站1 m ...

  5. shell+curl监控网站页面(域名访问状态),并利用sedemail发送邮件

    应领导要求,对公司几个主要站点的域名访问情况进行监控.下面分享一个监控脚本,并利用sendemail进行邮件发送. 监控脚本如下:下面是写了一个多线程的网站状态检测脚本,直接从文件中读出站点地址,然后 ...

  6. shell+curl监控网站页面(域名访问状态),并利用sendemail发送邮件

    应领导要求,对公司几个主要站点的域名访问情况进行监控.下面分享一个监控脚本,并利用sendemail进行邮件发送. 监控脚本如下:下面是写了一个多线程的网站状态检测脚本,直接从文件中读出站点地址,然后 ...

  7. 巧妙使用Firebug插件,快速监控网站打开缓慢的原因

    原文 巧妙使用Firebug插件,快速监控网站打开缓慢的原因 很多用户会问,我的网站首页才50KB,打开网页用了近60秒才打开?如何解释? 用户抱怨服务器运行缓慢,w3wp.exe 出现 CPU 10 ...

  8. MegaCli 监控raid状态 限戴尔服务器

    MegaCli 监控raid状态 MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等.通常 ...

  9. MegaCli 监控raid状态

    MegaCli 监控raid状态 http://blog.chinaunix.net/uid-25135004-id-3139293.html 简介 MegaCli是一款管理维护硬件RAID软件,可以 ...

随机推荐

  1. elasticsearch在linux上的安装,Centos7.X elasticsearch 7.6.2安装

    本文环境:Elasticsearch7.6.2目前最先版本   centos7.X     JDK1.8 elasticsearch介绍 官网:https://www.elastic.co/cn/pr ...

  2. 【Java】获取两个字符串中最大相同子串

    题目 获取两个字符串中最大相同子串 前提 两个字符串中只有一个最大相同子串 解决方案 public class StringDemo { public static void main(String[ ...

  3. Flowable实战(七)用户和组

      在流程中,最重要的参与者是用户.流程定义了任务何时需要用户参与,什么用户可以参与.   组可以理解为我们常说的角色.   Flowable中内置了一套简单的对用户和组的支持,身份管理(IDM ID ...

  4. 【刷题-LeetCode】162 Find Peak Element

    Find Peak Element A peak element is an element that is greater than its neighbors. Given an input ar ...

  5. 刷机错误ERROR:STATUS_BROM_CMD__FAIL

    ERROR:STATUS_BROM_CMD_STARTCMD_FAIL window驱动没有安装好,几乎所有安装包都有问题,很难成功,成功了也很慢.这是因为之前检测到且烧写错误,然后上一次的驱动错误连 ...

  6. 切换不同的echarts时,出现图标缩小,报警告,Can’t get dom width or height!

    出现这样的原因是因为,在切换的时候,图表所对应的标签还没有显示出来,最好将代码放在$nextick里面执行,并且,采用使用v-if进行切换 转载:https://www.pianshen.com/ar ...

  7. python类和函数

    #/usr/bin/python #coding=utf-8 class Car(): def __init__(self,name,year): self.name = name self.year ...

  8. Transformer模型详解

    2013年----word Embedding 2017年----Transformer 2018年----ELMo.Transformer-decoder.GPT-1.BERT 2019年----T ...

  9. DOM Document.readyState 属性

    感谢原文作者:MDN 原文地址:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/readyState 描述 一个document 的 ...

  10. 解决手机unauthorized错误

    手机:xiaomi-note(OS: Android 6.0) 手机开发者选项中USB调试已经打开,在电脑命令行下输入adb devices,显示手机未认证 D:\develop\androidroo ...