首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 一招检测配置文件是否变更

Python 一招检测配置文件是否变更

作者头像
Wu_Candy
发布2022-07-04 17:44:04
发布2022-07-04 17:44:04
5490
举报
文章被收录于专栏:无量测试之道无量测试之道

当项目非常多时随之而来的配置文件也会变得非常多,而且越发的复杂,有时候上线后才知道线上环境的配置文件不对,那么我们如何提前来检测到配置文件有改动了,本文将给你提供一个可以检测的手段。代码如下所示:

1

导入包并指定目录

代码语言:javascript
复制
import hashlib
import os
from qqAnalyse.conndb import  conndb

#定义要处理md5值的目录
path="D:\\tool\\elasticsearch-head-master\\elasticsearch-head-master"

2

初始化配置文件的md5值并入库

代码语言:javascript
复制
#初始化配置文件的md5值并入库
def init_md5():
    filelist = []
    filelist = get_file(path, filelist)
    for i in range(len(filelist)):
        md5v=get_md5_file(filelist[i])
        insert_sql="INSERT INTO mdFiveFile (filename,filemd) VALUES ('"+filelist[i]+"','"+str(md5v)+"');"
        db = conndb()
        db.execute_sql(insert_sql)

3

检测新配置文件的md5值是否变化

代码语言:javascript
复制
#检查新的配置文件md5值是否有改变,有改变则打印出来
def check_md5():
    filelist = []
    filelist = get_file(path, filelist)
    for i in range(len(filelist)):
        md5v = get_md5_file(filelist[i])
        selectsql = "select filemd from mdFiveFile where filename='" + filelist[i] + "';"
        # print(selectsql)
        db = conndb()
        md5=db.select_sql(selectsql)[0]
        if(md5!=md5v):
            print(str(filelist[i])+"--- please check the file,maybe it's update")
        else:
            print("the check is ok")

4

文件进行md5加密处理

代码语言:javascript
复制
#针对传入的文件计算md5的值
def get_md5_file(file_name):
    with open(file_name, 'rb') as fp:
        data = fp.read()
        # print(data)
    file_md5= hashlib.md5(data).hexdigest()
    return file_md5

5

遍历指定目录下文件

代码语言:javascript
复制
#遍历上面指定目录下的所有文件
def get_file(path,filelist):
    file_list = os.listdir(path)# 首先遍历当前目录所有文件及文件夹
    # print(file_list)
    for file in file_list:
        cur_path = os.path.join(path, file)# 利用os.path.join()方法取得路径全名,并存入cur_path变量,否则每次只能遍历一层目录
        if os.path.isdir(cur_path):
            get_file(cur_path,filelist)
        else:
            if(str(file).endswith("bak")):
                filelist.append(cur_path)
    return filelist

6

代码运行入口

代码语言:javascript
复制
if __name__ == '__main__':
    # init_md5()
    check_md5()

总结:我们首先要确定我们要检测的配置文件,然后将它的当前的md5值进行初始化到数据库,当下次发布前我们可以针对性的进行一次检测,发现有变更就会提示出来,这样就可以做到提前知晓变更的配置文件,再人工介入进行重点检查。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档