Nginx配置文件对比差异脚本(Python)

小柒博客
小柒博客
小柒博客
343
文章
96
评论
2018-11-1515:29:38 1 11.4K 973字阅读3分14秒

当我们维护多个Nginx配置文件时,时常会对比不通版本配置文件的差异,使运维人员更加清晰的了解不通版本迭代后的更新项,实现的思路是读取两个需对比的配置文件,再以换行符作为分隔符,调用difflib.HtmlDiff()生产HTML格式的差异文档。实现的代码如下:

[root@localhost ~]# cat diff.py

#!/usr/bin/python
#coding:utf-8

import difflib
import sys
try:
    #第一个配置文件路径参数
    textfile1=sys.argv[1] 
    #第二个配置文件路径参数
    textfile2=sys.argv[2] 
except Exception,e:
    print "Error:"+str(e)
    print "Usage: simple3.py filename1 filename2"
    sys.exit()
#文件读取分隔函数
def readfile(filename): 
    try:
        fileHandle = open (filename, 'rb' )
        #读取后以行进行分隔
        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: diff.py filename1 filename2 >diff.html"
    sys.exit()
#调用readfile函数,获取分隔后的字符串
text1_lines = readfile(textfile1) 
text2_lines = readfile(textfile2)
#创建HtmlDiff()类对象
d = difflib.HtmlDiff() 
#通过make_file方法输出HTML格式的比对结果
print d.make_file(text1_lines, text2_lines)

[root@localhost ~]# python diff.py nginx.conf nginx.conf1 >diff.html

[root@localhost ~]# \cp diff.html /usr/local/nginx/html/

#运行结果如下:

Nginx配置文件对比差异脚本(Python)

继续阅读
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢本站,请打赏支持本站,谢谢!
  • 微信号
  • 微信扫一扫加我!
  • weinxin
  • 微信公众号
  • 微信扫一扫关注我!
  • weinxin
Python 最后更新:2020-3-27
小柒博客
  • 本文由 发表于 2018-11-1515:29:38
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Docker 安装 Python Docker

Docker 安装 Python

Docker 安装 Python 1、查看可用的python版本 访问python镜像库地址:https://hub.docker.com/_/python?tab=tags 可以通...
Nginx动态添加模块 Nginx

Nginx动态添加模块

说明: 有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理、即时通讯...
Nginx自动化安装脚本 Shell

Nginx自动化安装脚本

此脚本是Nginx安装脚本,有需要朋友可以参考,脚本内容如下: 系统环境:CentOS 7.4 软件版本:1.16.1(最新稳定版) # vim auto_install_nginx.sh ...
Nginx配置用户名密码访问 Nginx

Nginx配置用户名密码访问

环境信息: 操作系统:CentOS 7.4 IP:192.168.0.111 如果我们在 Nginx 下搭建了一些站点,但是由于站点内容或者流量的关系,我们并不想让所有人都能正常访问...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

 

评论:1   其中:访客  1   博主  0
    • 运维老司机 运维老司机 6

      亲测,写的不错,感谢博主 :razz: