對比Nginx配置文件差別

1、概要:

Python2 官方文檔:https://docs.python.org/2/library/difflib.htmlhtml

Python2 官方文檔:https://docs.python.org/3/library/difflib.htmlpython

  當咱們維護多個Nginx配置時,時常會對比不一樣版本配置文件的差別,是運維人員更佳清晰地瞭解不一樣版本迭代後的更新項,實現的思路讀取兩個須要對比的配置文件,再以換行符做爲分隔符,調用difflib.HtmlDIff()生成HTML格式的差別文檔。nginx

2、代碼實現

實現代碼以下:運維

#!/usr/bin/env python

import difflib
import sys

try:
    textfile1=sys.argv[1]               #第一個配置文件路徑參數
    textfile2=sys.argv[2]                #第二個配置文件路徑參數
except Exception as e:
    print('Error:' +str(e))
    print("Usage: simple3.py filename1  filename2")
    sys.exit()

def readfile(filename):         #文件讀取分割函數
    try:
        fileHandle = open(filename,'rt')
        text = fileHandle.read().splitlines()           #讀取後以行進行分隔
        fileHandle.close()
        return text
    except IOError as error:
        print('Read file Error:'+ str(error))
        sys.exit()


if textfile1 == "" or textfile2=="":
    print("Usage: simple3.py filename1 filename2")
    sys.exit()


text1_lines = readfile(textfile1)     #調用readfile函數,獲取分隔後的字符串
text2_lines = readfile(textfile2)

d = difflib.HtmlDiff()          #建立HtmlDiff()類對象
print(d.make_file(text1_lines,text2_lines))     #經過make_file方法輸出HTML格式的對比結果

3、運行代碼結果以下

[root@localhost diff_lib]# python3 simple3.py nginx.conf.v1 nginx.conf.v2 > diff2.html函數

生成html頁面diff2.html

下圖爲:nginx.conf.v1與nginx.conf.v2配置文件對比結果spa

相關文章
相關標籤/搜索