脚本首先会尝试获取网页内容,然后判断网页内容是否包含指定内容,然后判断网页状态码,都没问题就通过,其他情况全部发邮件告警。

import requests
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email_smtp():
    for receiver_email in ["dov@qq.com","27895@qq.com","416@qq.com"]:
        sender_email = "dov@qq.com"
        password = "*****************"
    
        message = MIMEMultipart()
        message["From"] = sender_email
        message["To"] = receiver_email
        message["Subject"] = "服务器故障"
    
        body = "协同网页信息获取失败,请重启应用系统!"
        message.attach(MIMEText(body, "plain"))
    
        try:
            server = smtplib.SMTP("smtp.qq.com", 587)
            server.starttls()
            server.login(sender_email, password)
    
            server.sendmail(sender_email, receiver_email, message.as_string())
            print("Email sent successfully!")
        except Exception as e:
            print(f"Error: {e}")
        finally:
            server.quit()

url = 'http://16.16.16.25'
try:
    response = requests.get(url,timeout=3)
    content = response.text
    if "登录前门户" in content and response.status_code == 200:  
        print("Normal")
    else:
        send_email_smtp()
except:
    send_email_smtp()