对比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[] #第一个配置文件路径参数
textfile2=sys.argv[] #第二个配置文件路径参数
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
下图为:nginx.conf.v1与nginx.conf.v2配置文件对比结果

对比Nginx配置文件差异的更多相关文章
- linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)
linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表 ...
- 干货 | Nginx 配置文件详解
一个执着于技术的公众号 前言 在前面章节中,我们介绍了nginx是什么.如何编译安装nginx及如何彻底卸载nginx软件. 干货|给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 ...
- Nginx配置文件nginx.conf中文详解(转)
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...
- 查看nginx配置文件路径
进入nginx安装目录(我的是/usr/local/nginx-1.7.8/) 进入sbin目录,输入 ./nginx -t查看nginx配置文件路径以及该文件语法是否正确 ./nginx -v查看n ...
- Nginx配置文件详解
Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势. ######Nginx配置文件nginx.conf中文详解##### #定义Ngin ...
- 005.nginx配置文件
1.替换nginx主配置文件 通过前面的配置,LNMP的环境已经搭建完成,现在我们替换nginx配置文件: [root@huh ~]# cd /usr/local/nginx/conf/[root@h ...
- nginx配置文件nginx.conf超详细讲解
#nginx进程,一般设置为和cpu核数一样worker_processes 4; #错误日志存放目录 error_log /data1/logs/er ...
- 通过nginx配置文件抵御攻击
通过nginx配置文件抵御攻击 囧思九千 · 2013/11/12 12:22 0x00 前言 大家好,我们是OpenCDN团队的Twwy.这次我们来讲讲如何通过简单的配置文件来实现nginx防御攻击 ...
- Nginx配置文件nginx.conf详细说明
Nginx配置文件nginx.conf详细说明 #worker_processes 8; #worker_cpu_affinity 00000001 00000010 00000100 0000100 ...
随机推荐
- oracle之 12.1.0.1.0 C 在 linux 7 上安装报错处理
环境说明:-- os[root@host-172-16-3-132 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) - ...
- http链接
1,打开一个网页是多少个请求:如果是一个html页面就是一个,解析后面css,js就是很多个 一般都是多个http请求 浏览器先根据地址栏地址发送一个http请求获取html网页 然后浏览器解析ht ...
- HDFS(二)
HDFS的I/O主要是三个方面: 一致性 HDFS在一致性上面主要是通过校验和(checksum)来实现:从client发起写入的时候会校验一下文件内容,但是发生在pipeline的最后一个节点的时候 ...
- ecmall公告挂件分析(转)--此挂件写法已有更新的写法。
ecmall的首页,基本上都是由挂件的形式实现的.ecmall所有的挂件程序,都在external\widgets文件下面.ecmall首页公告的插件,就是notice目录里面. 分析里面文件,con ...
- 8.Python编写登录接口
1.python需安装flask,在命令行窗口输入:pip3 install flask 2.代码如下所示: from flask import Flask,request,jsonify,sessi ...
- c# 数据库通用类DbUtility
DbProviderType数据库类型枚举 /// <summary> /// 数据库类型枚举 /// </summary> public enum DbProviderTyp ...
- 初识C++模板元编程(Template Mega Programming)
前言:毕设时在开源库上做的程序,但是源码看得很晕(当时导师告诉我这是模板元编程,可以不用太在乎),最近自己造轮子时想学习STL的源码,但也是一样的感觉,大致了解他这么做要干什么,但是不知道里面的机制. ...
- Jquery each循环中中断
在each代码块内不能使用break和continue,要实现break和continue的功能的话,要使用其它的方式 break----用return false; continue --用retu ...
- FPGA与图像处理
用FPGA做图像处理最关键的一点优势就是:FPGA能进行实时流水线运算,能达到最高的实时性.因此在一些对实时性要求非常高的应用领域,做图像处理基本就只能用FPGA.例如在一些分选设备中图像处理基本上用 ...
- Zookeeper--配置服务
Zookeeper--配置服务 配置服务是分布式应用中重要的服务,作用是使集群中的机器可以共享配置信息中公共的部分.ZooKeeper可作为一个具有高可用,全局一致的配置服务器,允许客户端获取和更新配 ...