91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Python實現監控Nginx配置文件的不同并發送郵件報警功能示例

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

發布時間:2020-09-18 09:27:09 來源:腳本之家 閱讀:188 作者:亂彈世界 欄目:開發技術

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

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

下面是代碼:

#!/usr/bin/python2.7
# -*- encoding: utf-8 -*-
import difflib ##用于文件比較的庫
import sys
import smtplib
import getpass
from os.path import getsize
from 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)

這里貼上報警截圖:

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

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

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

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

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漳州市| 宿迁市| 望谟县| 阿合奇县| 金乡县| 黄大仙区| 石嘴山市| 惠水县| 湘潭县| 临汾市| 乌拉特前旗| 霸州市| 卢氏县| 清水县| 平江县| 宜章县| 沐川县| 肃南| 青神县| 利辛县| 南雄市| 宜良县| 马鞍山市| 将乐县| 登封市| 孝感市| 石首市| 泸定县| 防城港市| 潼南县| 五指山市| 桐柏县| 安达市| 通州区| 澄城县| 乐陵市| 富锦市| 车险| 山东省| 濉溪县| 富平县|