1. 程式人生 > >python 指令碼監控url返回碼並郵件報警

python 指令碼監控url返回碼並郵件報警

#coding=utf-8  
   
import requests  
import smtplib
from smtplib import SMTP_SSL
from email.mime.text import MIMEText

#定義一個發郵件函式
def mail(sub,content):
    mailto_list=["[email protected]"]
    mail_host="smtp.163.com"
    mail_uer="[email protected]"
    mail_pass="word2613182"
    message = MIMEText(content,_charset='utf-8')
    message['Subject'] = sub
    message['From']=mail_uer
    message['To'] = ";".join(mailto_list)
    try:
        #s = smtplib.SMTP()
        s = SMTP_SSL()
        s.connect(mail_host)
        s.login(mail_uer,mail_pass)
        s.sendmail(mail_uer, mailto_list, message.as_string())
        s.close()
        return True
    except Exception as e:
        print (str(e))
        return False   
def get_status(url):  
    r = requests.get(url, allow_redirects = False)  
    return r.status_code  
      
def main():  
    url_file = open("url.txt")
    for url in url_file.xreadlines():  
        url = url.strip().replace(" ", "").replace("\n", "").replace("\r\n", "")
        http_url = 'https://' + url
        status=get_status(http_url)
        if status!=200:  
            mail('網頁返回碼',"'%s'  返回碼非200" %(http_url))
        elif status==502:
           mail('網頁返回碼',"'%s'  返回碼502" %(http_url))
if __name__=="__main__":  
    main();