脚本功能:

监控多台Web服务器状态,一旦发生问题就发送邮件

运行环境:

Python2.7/2.4皆可运行

脚本使用方法:

可利用Crontab或者计划任务来指定时间运行,例如:

*/10 * * * * 脚本路径

脚本运行效果如下:

脚本内容如下:

#!/usr/bin/env python

# coding=utf-8

#----------------------------------------------------------

# Name:         WEB服务器巡检脚本

# Purpose:      监控多台Web服务器状态,一旦出现问题就发送邮件

# Version:      1.0

# Author:       LEO

# BLOG:         http://linux5588.blog.51cto.com

# EMAIL:        chanyipiaomiao@163.com

# Created:      2013-06-04

# Copyright:    (c) LEO 2013

# Python:       2.4/2.7

#----------------------------------------------------------

from smtplib import SMTP

from email import MIMEText

from email import Header

from datetime import datetime

import httplib

#定义要检测的服务器,URL 端口号 资源名称

web_servers = [('192.168.1.254', 80, 'index.html'),

('www.xxx.com', 80, 'index.html'),

('114.114.114.114', 9000, '/main/login.html'),

]

#定义主机 帐号 密码 收件人 邮件主题

smtpserver = 'smtp.163.com'

sender = 'xxxx@xxx.com'

password = 'password'

receiver = ('收件人1','收件人2')

subject = u'WEB服务器告警邮件'

From = u'Web服务器'

To = u'服务器管理员'

#定义日志文件位置

error_log = '/tmp/web_server_status.txt'

def send_mail(context):

'''发送邮件'''

#定义邮件的头部信息

header = Header.Header

msg = MIMEText.MIMEText(context,'plain','utf-8')

msg['From'] = header(From)

msg['To'] = header(To)

msg['Subject'] = header(subject + '\n')

#连接SMTP服务器,然后发送信息

smtp = SMTP(smtpserver)

smtp.login(sender, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.close()

def get_now_date_time():

'''获取当前的日期'''

now = datetime.now()

return str(now.year) + "-" + str(now.month) + "-" \

+ str(now.day) + " " + str(now.hour) + ":" \

+ str(now.minute) + ":" + str(now.second)

def check_webserver(host, port, resource):

'''检测WEB服务器状态'''

if not resource.startswith('/'):

resource = '/' + resource

try:

try :

connection = httplib.HTTPConnection(host, port)

connection.request('GET', resource)

response = connection.getresponse()

status = response.status

content_length = response.length

except :

return  False

finally :

connection.close()

if status in [200,301] and content_length != 0:

return True

else:

return False

if __name__ == '__main__':

logfile = open(error_log,'a')

problem_server_list = []

for host in web_servers:

host_url = host[0]

check = check_webserver(host_url, host[1], host[2])

if not check:

temp_string = 'The Server [%s] may appear problem at %s\n' % (host_url,get_now_date_time())

print >> logfile, temp_string

problem_server_list.append(temp_string)

logfile.close()

#如果problem_server_list不为空,就说明服务器有问题,那就发送邮件

if problem_server_list:

send_mail(''.join(problem_server_list))

html巡检脚本,WEB服务器巡检脚本相关推荐

  1. linux服务器运维巡检脚本,linux服务器巡检脚本

    巡检的基本步骤: 1.在每台服务器上部署巡检的脚本,查询相应的日志. 2.将每台服务器上的日志发送到ftp服务器的指定目录下. 3.遍历ftp服务器指定目录,并且将各个的文件信息整理到一个文件中. 4 ...

  2. mysql巡检脚本_mysql 服务器巡检脚本

    #! /bin/bash ### AUTHOR: cenliang ### EMAIL: xuanniaoxi@sina.com ### DATE:2018/03/22### REV:3.0# 数据库 ...

  3. 服务器巡检文档,服务器巡检工具

    服务器巡检工具 内容精选 换一换 由于root用户拥有最高权限,直接使用root用户登录服务器可能会存在安全风险.建议您使用普通用户登录服务器后切换为root用户,再执行后续安装操作,并建议您通过配置 ...

  4. 系统服务器性能巡检报告,pc服务器巡检报告

    pc服务器巡检报告 内容精选 换一换 简要介绍iPerf是一种命令行工具,它通过测量服务器可以处理的最大网络吞吐量来测试网络速度,因此在遇到网络速度问题时特别有用,通过该工具可以确定哪台服务器存在性能 ...

  5. 华为服务器虚拟化巡检报告,pc服务器巡检报告

    pc服务器巡检报告 内容精选 换一换 JMeter测试报告提供实时.离线两种类型的测试报告,供用户随时查看和分析测试数据.JMeter测试报告说明如表1所示.本测试报告展现了测试过程中被测系统在模拟高 ...

  6. linux操作系统巡检报告,linux服务器巡检报告

    linux服务器巡检报告 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 完美WORD格式.整理 Linux服务器巡检 . 专业资料分享 ...

  7. java框架 - web服务器

    web是互联网的总称,全称为World Wide Web,缩写WWW ,即全球广域网,也称为万维网,它是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统.是建立在Inter ...

  8. mysql 5.7巡检脚本_mysql自动化巡检脚本生成html报告

    一. 前言 1.之前出了一篇oracle自动巡检脚本生成html报告和一篇Linux服务器系统自动巡检脚本生成html报告,本篇文章出一篇mysql自动巡检脚本生成html报告. 2.脚本只提供部分简 ...

  9. PHP服务器脚本实例,Shell脚本实现的一个简易Web服务器例子分享_linux shell

    这篇文章主要介绍了Shell脚本实现的一个简易Web服务器例子分享,本文实现的Web服务器非常简单实用,可以在你不想安装nginx.apache等大型WEB服务器时使用,需要的朋友可以参考下 假设你想 ...

最新文章

  1. UVA 10515 - Powers Et Al.(数论)
  2. mysql for mac 使用_MySQL for Mac 安装和基本操作
  3. 繁凡的ACM算法全家桶(全新的模板整合计划)
  4. 利用jQuery实现回收站删除效果
  5. 互联网1分钟 |1214
  6. pymysql的安装
  7. Ubuntu 20.04安装Ros Noetic及Ubuntu 18.04安装ROS Melodic(两版本详细填坑)
  8. 花旗银行文章解释DeFi的好处
  9. Vue项目中安装axios
  10. 车牌识别系列(二)生成具有真实感的(realistic)车牌数据
  11. 支持多线程编程的Web Workers
  12. 汇编-ARMv8架构指令集
  13. trinity运行原理及常见报错(二)
  14. pycharm 破解方法
  15. 【UML】 用例粒度
  16. java 截屏 锁屏黑色_Appium 解决锁屏截屏问题(java篇)
  17. 【论文翻译】Robot-Centric Elevation Mapping with Uncertainty Estimates---具有不确定性估计的机器人中心高程图映射
  18. 【渝粤教育】国家开放大学2018年春季 8644-21T汽车电子商务 参考试题
  19. 【WEB安全自学】第一节 WEB基础环境搭建
  20. android 自定义View 视差动画

热门文章

  1. Tensorflow 中添加正则化项
  2. Oracle Real Application Clusters (RAC)
  3. formidable模块的使用
  4. 八年了,必须放手了,我不是你妈妈
  5. FreeCAD项目编译记录(1)
  6. OC中数据库操作(类方法)
  7. Codeforces7C 扩展欧几里得
  8. 黑马程序员--java基础加强之内省(IntroSpector)
  9. 一个基于WinCE平台的语音识别例子,利用微软speechAPI5.0
  10. spring核心:bean工厂的装配 2