python實現(xiàn)監(jiān)控某個服務 服務崩潰即發(fā)送郵件報告
前言:最近我們的升級服務器有點不太穩(wěn)定,經(jīng)常崩潰掉。然后客戶連接不上,跟我們反饋才知道。所以寫這個腳本的目的就是為了比客戶提前知道升級服務的運行狀況,一旦崩潰掉,就能第一時間登錄上去,開啟服務,避免客戶投訴。
目標:Python實現(xiàn)監(jiān)控某個服務,服務崩潰發(fā)送郵件報告。
原理:服務對應著端口,服務關(guān)閉的時候端口也會關(guān)閉。所以可以簡化為監(jiān)控某個端口,端口關(guān)閉發(fā)送郵件報告
方法:需要用到簡單郵件服務器和端口探測的方法
廢話不多說直接上代碼:
#-*- 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è)置服務器 mail_user="1124794084" #用戶名 mail_pass="密碼" #口令 mail_postfix="qq.com" #發(fā)件箱的后綴 def send_mail(to_list,sub,content): #to_list:收件人;sub:主題;content:郵件內(nèi)容 me="升級服務器報告"+"<"+mail_user+"@"+mail_postfix+">" #這里的hello可以任意設(shè)置,收到信后,將按照設(shè)置顯示 msg = MIMEText(content,_subtype='html',_charset='gb2312') #創(chuàng)建一個實例,這里設(shè)置為html格式郵件 msg['Subject'] = sub #設(shè)置主題 msg['From'] = me msg['To'] = ";".join(to_list) try: s = smtplib.SMTP() s.connect(mail_host) #連接smtp服務器 s.login(mail_user,mail_pass) #登陸服務器 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升級服務器監(jiān)測異常","error") time.sleep(1800) #設(shè)置一分鐘監(jiān)測一次,如果發(fā)現(xiàn)端口9906消失則發(fā)送郵件報告,設(shè)置延遲為半小時,避免一直重復發(fā)送郵件
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Python 如何調(diào)試程序崩潰錯誤
- Python 程序報錯崩潰后如何倒回到崩潰的位置(推薦)
- jupyter notebook 使用過程中python莫名崩潰的原因及解決方式
- 解決python多線程報錯:AttributeError: Can''t pickle local object問題
- Python3下錯誤AttributeError: ‘dict’ object has no attribute’iteritems‘的分析與解決
- python錯誤:AttributeError: ''module'' object has no attribute ''setdefaultencoding''問題的解決方法
- Python進程崩潰AttributeError異常問題解決
相關(guān)文章
自然語言處理之文本熱詞提取(含有《源碼》和《數(shù)據(jù)》)
這篇文章主要介紹了自然語言處理之文本熱詞提取,主要就是通過jieba的posseg模塊將一段文字分段并賦予不同字段不同意思,然后通過頻率計算出熱頻詞,需要的朋友可以參考下2022-05-05Python?Pandas數(shù)據(jù)處理高頻操作詳解
這篇文章主要為大家整理了一些Python?Pandas數(shù)據(jù)處理高頻操作,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,需要的可以參考一下2022-06-06在pytorch 中計算精度、回歸率、F1 score等指標的實例
今天小編就為大家分享一篇在pytorch 中計算精度、回歸率、F1 score等指標的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01python嵌套函數(shù)使用外部函數(shù)變量的方法(Python2和Python3)
這篇文章主要介紹了python嵌套函數(shù)使用外部函數(shù)變量的方法,需要的朋友可以參考下2016-01-01