亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python實(shí)現(xiàn)監(jiān)控某個服務(wù) 服務(wù)崩潰即發(fā)送郵件報告

 更新時間:2018年06月21日 11:07:42   作者:黑面狐  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)監(jiān)控某個服務(wù),服務(wù)崩潰發(fā)送郵件報告,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言:最近我們的升級服務(wù)器有點(diǎn)不太穩(wěn)定,經(jīng)常崩潰掉。然后客戶連接不上,跟我們反饋才知道。所以寫這個腳本的目的就是為了比客戶提前知道升級服務(wù)的運(yùn)行狀況,一旦崩潰掉,就能第一時間登錄上去,開啟服務(wù),避免客戶投訴。

目標(biāo):Python實(shí)現(xiàn)監(jiān)控某個服務(wù),服務(wù)崩潰發(fā)送郵件報告。

原理:服務(wù)對應(yīng)著端口,服務(wù)關(guān)閉的時候端口也會關(guān)閉。所以可以簡化為監(jiān)控某個端口,端口關(guān)閉發(fā)送郵件報告

方法:需要用到簡單郵件服務(wù)器和端口探測的方法

廢話不多說直接上代碼:

#-*- encoding:utf-8 -*- 
#!/usr/bin/env python 
# name IsOpen.py 
import os 
import socket 
import time 
import smtplib  
from email.mime.text import MIMEText 
 
mailto_list=["872766492@qq.com"]  
mail_host="smtp.qq.com" #設(shè)置服務(wù)器 
mail_user="1124794084"  #用戶名 
mail_pass="密碼"  #口令  
mail_postfix="qq.com" #發(fā)件箱的后綴 
  
def send_mail(to_list,sub,content): #to_list:收件人;sub:主題;content:郵件內(nèi)容 
  me="升級服務(wù)器報告"+"<"+mail_user+"@"+mail_postfix+">"  #這里的hello可以任意設(shè)置,收到信后,將按照設(shè)置顯示 
  msg = MIMEText(content,_subtype='html',_charset='gb2312')  #創(chuàng)建一個實(shí)例,這里設(shè)置為html格式郵件 
  msg['Subject'] = sub  #設(shè)置主題 
  msg['From'] = me  
  msg['To'] = ";".join(to_list)  
  try:  
    s = smtplib.SMTP()  
    s.connect(mail_host) #連接smtp服務(wù)器 
    s.login(mail_user,mail_pass) #登陸服務(wù)器 
    s.sendmail(me, to_list, msg.as_string()) #發(fā)送郵件 
    s.close()  
    return True  
  except Exception, e:  
    print str(e)  
    return False 
 
 
def IsOpen(ip,port,flag): 
  s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
  try: 
    s.connect((ip,int(port))) 
    s.shutdown(2) 
    print '%d is open' % port 
    return True 
  except: 
    print '%d is down' % port  
    return False 
   
if __name__ == '__main__': 
  while(1>0): 
    flag=1 
    IsOpen('127.0.0.1',9906) 
    time.sleep(60) 
    flag=IsOpen('127.0.0.1',9906) 
    print flag 
    if flag==False: 
      send_mail(mailto_list,"XX升級服務(wù)器監(jiān)測異常","error") 
      time.sleep(1800) 
 
#設(shè)置一分鐘監(jiān)測一次,如果發(fā)現(xiàn)端口9906消失則發(fā)送郵件報告,設(shè)置延遲為半小時,避免一直重復(fù)發(fā)送郵件 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論