对比Nginx配置文件差异
一、概要:
Python2 官方文档:https://docs.python.org/2/library/difflib.html
Python2 官方文档:https://docs.python.org/3/library/difflib.html
当我们维护多个Nginx配置时,时常会对比不同版本配置文件的差异,是运维人员更佳清晰地了解不同版本迭代后的更新项,实现的思路读取两个需要对比的配置文件,再以换行符作为分隔符,调用difflib.HtmlDIff()生成HTML格式的差异文档。
二、代码实现
实现代码如下:
#!/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格式的对比结果
三、运行代码结果如下
[root@localhost diff_lib]# python3 simple3.py nginx.conf.v1 nginx.conf.v2 > diff2.html
生成html页面diff2.html
下图为:nginx.conf.v1与nginx.conf.v2配置文件对比结果