国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現監控Nginx配置文件的不同并發送郵件報警功能示例

2020-02-16 01:24:08
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現監控Nginx配置文件的不同并發送郵件報警功能。分享給大家供大家參考,具體如下:

因為項目中經常涉及到多個Nginx之間的配置文件更改,可能回導致最后Nginx之間的配置文件有所不同,這樣會對項目產生影響,最典型的就是可能當訪問域名解析到其中一臺Nginx的時候,可能是正常的,當域名解析到另外一臺Nginx的時候,由于配置文件的不同,導致訪問出錯之類的,影響體驗,所以用python寫了一個監控配置文件不同的腳本,如果發現不同,就報警,并且以HTML的形式發送郵件指出具體的文件不同地方。

下面是代碼:

#!/usr/bin/python2.7# -*- encoding: utf-8 -*-import difflib ##用于文件比較的庫import sysimport smtplibimport getpassfrom os.path import getsizefrom email.MIMEText import MIMEText#檢查文件的大小是否相同def check_files_size(file1, file2):  size1 = getsize(file1)  size2 = getsize(file2)  if int(size1) != int(size2):  return True#比較文件的內容,并且聲稱HTML頁面def files_compare(file1, file2):  text1_lines = file1.splitlines()  text2_lines = file2.splitlines()  d = difflib.HtmlDiff()  msg = d.make_file(text1_lines, text2_lines)  return msg#郵件報警,使用Linux自帶的postfix發送郵件def alert_by_email(subject, msg, mailto):  senduser = getpass.getuser()###獲取當前Linux登錄的用戶  smail = smtplib.SMTP('127.0.0.1')  #smail.set_debuglevel(1) ##設置為調試模式,可以看到郵件發送的過程和成功與否  message = MIMEText(msg, 'html', _charset='utf-8')  message['From'] = senduser  message['To'] = mailto  message['Subject'] = subject  smail.sendmail('root@localhost', mailto, message.as_string())  smail.quit()if __name__ == '__main__':  reload(sys)  sys.setdefaultencoding('utf-8')#設置編碼為utf-8  file1 = '/home/*/nginx1/nginx.conf'  file2 = '/home/*/nginx2/nginx.conf'  mailto = '***@***' #發送到你想要接收的郵箱地址  subject = u'nginx配置文件監控' #郵件主題  if check_files_size(file1, file2) == True: #如果兩個文件大小不同,就進行文件內容比較,發送郵件報警  with open(file1) as f:    text1 = f.read().strip()  with open(file2) as f:    text2 = f.read().strip()  msg = files_compare(text1, text2)  alert_by_email(subject, msg, mailto)  else:  sys.exit(0)

這里貼上報警截圖:

總體的思路就是:增加一臺管理控制機器,然后備份不同服務器上的Nginx配置文件,使用上面的檢測腳本進行監控,每隔十分鐘或者你想要的時間長度進行監控(crontab定時任務就可以)。

以上就是實踐過程中遇到的問題和解決思路,如果有錯誤或者更好的方法,還請各位大神幫忙指正。

更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牡丹江市| 巴彦淖尔市| 玛纳斯县| 辽宁省| 容城县| 资溪县| 社旗县| 吕梁市| 长宁县| 昌黎县| 阜阳市| 永州市| 银川市| 抚宁县| 丽江市| 泸州市| 深圳市| 茂名市| 长岛县| 耿马| 仁布县| 青田县| 井陉县| 会理县| 贡山| 奉化市| 九寨沟县| 贺兰县| 乡城县| 宜昌市| 彩票| 晋州市| 长春市| 南澳县| 沭阳县| 广宗县| 阿拉尔市| 岳阳市| 通化市| 大新县| 屏东市|