iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现批量监控网站
  • 747
分享到

python实现批量监控网站

批量网站python 2022-06-04 18:06:42 747人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

最近又新上了一部分站点,随着站点的增多,管理复杂性也上来了,俗话说:人多了不好带,我发现站点多了也不好管,因为这些站点里有重要的也有不重要的,重要核心的站点当然就管理的多一些,像一些万年都不出一次问题的,慢

最近又新上了一部分站点,随着站点的增多,管理复杂性也上来了,俗话说:人多了不好带,我发现站点多了也不好管,因为这些站点里有重要的也有不重要的,重要核心的站点当然就管理的多一些,像一些万年都不出一次问题的,慢慢就被自己都淡忘了,冷不丁那天出个问题,还的手忙脚乱的去紧急处理,所以规范的去管理这些站点是很有必要的,今天我们就做第一步,不管大站小站,先统一把监控做起来,先不说业务情况,最起码那个站点不能访问了,要第一时间报出来,别等着业务方给你反馈,就显得我们不够专业了,那接下来我们看看如果用python实现多网站的可用性监控,脚本如下:


#!/usr/bin/env Python
 
 
import pickle, os, sys, logging
from Httplib import HTTPConnection, Socket
from smtplib import SMTP
 
def email_alert(message, status):
  fromaddr = 'xxx@163.com'
  toaddrs = 'xxxx@qq.com'
  
  server = SMTP('smtp.163.com:25')
  server.starttls()
  server.login('xxxxx', 'xxxx')
  server.sendmail(fromaddr, toaddrs, 'Subject: %srn%s' % (status, message))
  server.quit()
 
def get_site_status(url):
  response = get_response(url)
  try:
    if getattr(response, 'status') == 200:
      return 'up'
  except AttributeError:
    pass
  return 'down'
    
def get_response(url):
  try:
    conn = HTTPConnection(url)
    conn.request('HEAD', '/')
    return conn.getresponse()
  except socket.error:
    return None
  except:
    logging.error('Bad URL:', url)
    exit(1)
    
def get_headers(url):
  response = get_response(url)
  try:
    return getattr(response, 'getheaders')()
  except AttributeError:
    return 'Headers unavailable'
 
def compare_site_status(prev_results):
  
  def is_status_changed(url):
    status = get_site_status(url)
    friendly_status = '%s is %s' % (url, status)
    print friendly_status
    if urlin prev_resultsand prev_results[url] != status:
      logging.warning(status)
      email_alert(str(get_headers(url)), friendly_status)
    prev_results[url] = status
 
  return is_status_changed
 
def is_internet_reachable():
  if get_site_status('www.baidu.com') == 'down' and get_site_status('www.sohu.com') == 'down':
    return False
  return True
  
def load_old_results(file_path):
  pickledata = {}
  if os.path.isfile(file_path):
    picklefile = open(file_path, 'rb')
    pickledata = pickle.load(picklefile)
    picklefile.close()
  return pickledata
  
def store_results(file_path, data):
  output = open(file_path, 'wb')
  pickle.dump(data, output)
  output.close()
  
def main(urls):
  logging.basicConfig(level=logging.WARNING, filename='checksites.log', 
      fORMat='%(asctime)s %(levelname)s: %(message)s', 
      datefmt='%Y-%m-%d %H:%M:%S')
  
  pickle_file = 'data.pkl'
  pickledata = load_old_results(pickle_file)
  print pickledata
    
  if is_internet_reachable():
    status_checker = compare_site_status(pickledata)
    map(status_checker, urls)
  else:
    logging.error('Either the world ended or we are not connected to the net.')
    
  store_results(pickle_file, pickledata)
 
if __name__ == '__main__':
  main(sys.argv[1:])

脚本核心点解释:

1、getattr()是python的内置函数,接收一个对象,可以根据对象属性返回对象的值。

2、compare_site_status()函数是返回的是一个内部定义的函数。

3、map(),需要2个参数,一个是函数,一个是序列,功能就是将序列中的每个元素应用函数方法。

--结束END--

本文标题: python实现批量监控网站

本文链接: https://www.lsjlt.com/news/14303.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 网卡流量监控脚本,python实现
    使用-h获取帮助在Python2.7版本以上执行脚本获取:https://github.com/raysuen/AdapterMonitor内容:#!/usr/bin/env python# _*_coding:utf-...
    99+
    2023-06-05
  • 用Python实现多站点运维监控
    在小型公司里如果产品线单一的话,比如就一个app, 一般1~2个运维就够用了。如果产品过于庞大,就需要多个运维人员。 但对于多产品线的公司来说,运维人员就要必须分多个人负责,因为超过200个站点让1个人维护,那工作量是巨大的,就单单给开发...
    99+
    2023-01-30
    站点 Python
  • python3监控网站状态
    前面已经写过Python3发邮件,Python发微信的文章了。直接导入即可。import configparser,requests from time import sleep import WeChat,Mail class chec...
    99+
    2023-01-31
    状态 网站
  • Python怎么监视和衡量网站
    这篇文章主要讲解了“Python怎么监视和衡量网站”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么监视和衡量网站”吧!网络重要指标简介5月初,Google推出了Core Web...
    99+
    2023-06-16
  • [Python]用python实现批量/
      针对前面的代码 http://lxsym.blog.51cto.com/1364623/1065854,还存在的问题进行了改善:     1、去掉明文密码,通过交互输入密码     2、通过传参执行相关命令,增加灵活...
    99+
    2023-01-31
    批量 Python python
  • 批处理如何实现一键批量备份网站数据
    这篇文章将为大家详细讲解有关批处理如何实现一键批量备份网站数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。把以下代码另存为AutoBAK.BAT文件放到你要打包的目录下双击执行即可!非常适合虚拟主机商批...
    99+
    2023-06-08
  • python识别批量网站中的图片
    需要实现的功能:给出一个网站列表,抓出这些网页上的图片。 实现方式: 下载网页源码,在源码中识别包含图片url的标签,如<img>,<div>,<li>。由于对html了解较少,哪些标签可能含有图片是从...
    99+
    2023-01-30
    批量 图片 网站
  • Python网速监控
    Python网速监控脚本 功能: 统计网卡接收和发送的总流量,计算每秒的网速 代码如下: #!/bin/env python36 import sys import threading import time # 单位换算 d...
    99+
    2023-01-31
    网速 Python
  • Python实现B站UP主自动监控功能详解
    目录开发工具环境搭建原理简介1.确定小目标2.模拟登录3.自动关注4.实时监控效果展示众所周知,B站有很多有趣的UP主,可以教大家一些"实用"的知识: 但是他们...
    99+
    2024-04-02
  • Python实现对Tomcat的监控
    Python实现对Tomcat的监控     最近发现tomcat经常会僵死。而PS查看进程的时候进程还在。但不提供服务了。程序的功能:定期对tomcat服务器发送指命,如果得到响应,则服务器正常,否则异常,同时发邮件给相关人员。...
    99+
    2023-01-31
    Python Tomcat
  • Python PyQt5实战项目之网速监控器的实现
    目录简介psutil模块使用主界面网速线程全部代码成果展示简介 看到了一个能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息的模块–psutil模块。这...
    99+
    2024-04-02
  • Linux中怎么实现流量监控
    这篇文章将为大家详细讲解有关Linux中怎么实现流量监控,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux流量监控iftop工具 用处: 用来立即监望网道状况战各ip所应用的频阔 履行...
    99+
    2023-06-16
  • VB.NET中怎么实现网络监控
    这篇文章给大家介绍VB.NET中怎么实现网络监控,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在窗体上放置一个TreeView控件,改名为tvInfo。再放置一个按钮控件。双击按钮,编写VB.NET网络监控代码。Dim...
    99+
    2023-06-17
  • 安全实现Linux网络监控(3)
    安全实现Linux网络监控(3)   三、 Ntop使用详解 ntop是一个灵活的、功能齐全的,用来监控和解决局域网问题的工具。它同时提供命行输入和web界面,可应用于嵌入式web服务。下面分别介绍: 1         Web浏览器方式:...
    99+
    2023-01-31
    网络监控 Linux
  • graphite,python监控网卡流
    由于我发的东西在51CTO上都变成转载了,蛋疼。想跟我交流的朋友,去我的百度个人空间吧,51CTO不再更新了http://hi.baidu.com/wsdfw...
    99+
    2023-01-31
    网卡 graphite python
  • java如何实现接口流量监控
    要实现接口流量监控,可以使用Java的Network Interface和TrafficStats类。首先,可以使用Network ...
    99+
    2023-09-15
    java
  • Python怎么批量下载阴阳师网站壁纸
    这篇文章给大家分享的是有关Python怎么批量下载阴阳师网站壁纸的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最终版本# 引入系统类库用于打开关闭文件import sys# 使用文档...
    99+
    2023-06-15
  • python实现图片批量压缩
    目录第一种 一:安装包二:导入包三:获取图片文件的大小四:输出文件夹下的文件五:压缩文件到指定大小,我期望的是150KB,step和quality可以修改到最合适的数值六:...
    99+
    2024-04-02
  • python实现主机批量管理
        在日常的运维工作中批量对主机的是很常见的,市面上也有许多主机批量管理的软件,但有时候这些软件并不能完全的满足我们的需求。python中刚好提供了关于主机批量管理的模块,今天就让我们来看看如何利用python实现主机批量管理pytho...
    99+
    2023-01-31
    批量 主机 python
  • python实现批量移动文件
    本文通过实例为大家分享了python实现批量移动文件的具体代码,供大家参考,具体内容如下 任务:每个大文件夹下有许多小文件夹,将小文件夹里的pdf文件移动到指定文件夹。如图: 最...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作