python处理配置文件

比较配置文件有什么不同

#!/usr/bin/env python
import configparser
#service=['es','web','es2mysql','zs_power','bind','mysql','redis','zookeeper','kafka','ogg','mm2','jdbc_connect','hive_connect','kstream','zy','binary','connect','all_node','all_node_vars','all_vars']
#hosts={'node64':'192.168.80.67','node65':'192.168.80.68','node66':'192.168.80.69'}
conf1 = configparser.ConfigParser()
conf1.read(r'hosts',encoding='utf-8')

conf2 = configparser.ConfigParser()
conf2.read(r'hosts2',encoding='utf-8')
sec1=conf1.sections()
sec2=conf2.sections()
diffsec1=[x for x in sec1 if x not in sec2]
diffsec2=[y for y in sec2 if y not in sec1]
if diffsec1:
    print("hosts文件中存在sec %s,而hosts2中没有" % diffsec1)
else:
    print("none")
if diffsec2:
    print("hosts2文件中存在sec %s,而hosts中没有" % diffsec2)
else:
    print("none")
#print(type(diffsec1))

#print(sec)
for i in sec2:
    if i not in diffsec2:
        host1=conf1.options(i)
        value1=conf1.items(i)
        host2=conf2.options(i)
        diffhost1=[x for x in host1 if x not in host2]
        diffhost2=[y for y in host2 if y not in host1]
        if diffhost1:
            print("hosts的 %s 存在 %s,而host2的 %s 没有"%(i,diffhost1,i))
        #else:
         #   print("hosts的 %s 和 hosts2的 %s相同" %(i,i))
        if diffhost2:
            print("hosts2的 %s 存在 %s,而host的 %s 没有"%(i,diffhost2,i))
        #else:
         #   print("hosts2的 %s 和 hosts的 %s相同" % (i,i))
            #print("sec %s include %s" %(i,host1))
            #print("sec %s dict %s" % (i,value1))
        if i == "all:vars":
            #opt=conf1.options(i)
            value1=dict(conf1.items(i))
            #print (i)
            value2=dict(conf2.items(i))
            #print(value1)
            #print(value2)
            #key1=value1.keys()
            #key2=value2.keys()
            #a=[x for x in key1 if x not in key2]
            #b=[y for y in key2 if y not in key1]
            #print("hosts文件中all:vars部分,存在配置参数%s,而hosts2中没有"%a)
            #print("hosts2文件中all:vars部分,存在配置参数%s,而hosts中没有"%b)
            differ=set(value1.items()) ^ set(value2.items())
            diffkey=set(value1.keys() ^ value2.keys())
            diffkey2=set(value1.keys() - value2.keys())
            diffkey3=set(value2.keys() - value1.keys())
            #print(type(differ))
            if diffkey:
                print("hosts文件中和host2文件all:vars部分不共有的key为 %s" % diffkey)
            else:
                print("none")
            if diffkey2:
                print("hosts文件all:vars部分存在而host2文件all:vars部分不存在的key %s" % diffkey2)
            else:
                print("none")
            if diffkey3:
                print("hosts2文件all:vars部分存在而host文件all:vars部分不存在的key %s" % diffkey3)
            else:
                print("none") 

配置文件1

[root@ceph-01 infra]# egrep -v '^#|^$' hosts
[es]
node64 NODE_IPADDR=192.168.80.64
node65 NODE_IPADDR=192.168.80.65
node66 NODE_IPADDR=192.168.80.66
[es2mysql]
node64 NODE_IPADDR=192.168.80.64
[zs_power]
node65 NODE_IPADDR=192.168.80.65 PRECOMPUTE=0 PP1=0
node66 NODE_IPADDR=192.168.80.66 PRECOMPUTE=0 PP1=0
[blind]
node64 NODE_IPADDR=192.168.80.64
[mysql]
node64 NODE_IPADDR=192.168.80.64
node65 NODE_IPADDR=192.168.80.65
[redis]
[zookeeper]
node64 NODE_IPADDR=192.168.80.64 ZOO_MY_ID=1 
node65 NODE_IPADDR=192.168.80.65 ZOO_MY_ID=2
node66 NODE_IPADDR=192.168.80.66 ZOO_MY_ID=3
[kafka]
node64 NODE_IPADDR=192.168.80.64 BROKER_ID=1 
node65 NODE_IPADDR=192.168.80.65 BROKER_ID=2 
node66 NODE_IPADDR=192.168.80.66 BROKER_ID=3 
[ogg]
[mm2]
[jdbc_connect]
[hive_connect]
[kstream]
node64 NODE_IPADDR=192.168.80.64 ZONE=jiangxi
node65 NODE_IPADDR=192.168.80.65 ZONE=jiangxi
node66 NODE_IPADDR=192.168.80.66 ZONE=jiangxi
[zy]
node64 NODE_IPADDR=192.168.80.64 ZY_MERGE=1 ZY_IMPORT=1
node65 NODE_IPADDR=192.168.80.65 ZY_MERGE=1
node66 NODE_IPADDR=192.168.80.66 ZY_MERGE=1
[binary]
node64 NODE_IPADDR=192.168.80.64
node65 NODE_IPADDR=192.168.80.65
node66 NODE_IPADDR=192.168.80.66
[connect]
node64 NODE_IPADDR=192.168.80.64 
node65 NODE_IPADDR=192.168.80.65
node66 NODE_IPADDR=192.168.80.66 
[all_node]
node64 NODE_IPADDR=192.168.80.64
node65 NODE_IPADDR=192.168.80.65
node66 NODE_IPADDR=192.168.80.66
[all_node:vars]
ansible_connection=ssh
[all:vars]
FTP_MIN_PORT=30004
FTP_MAX_PORT=30054
SSH_PORT=10022
ZS_PASSWORD=abc123456
ZSHIELD_HOME=/home/zshield
NTP_IP=192.168.80.64
MASTER_NODE=node64
SLAVE_NODE=node65
MYSQL_PORT=13306
MYSQL_USER=root
MYSQL_PASSWD=Zx123456@shining11
ES_VERSION=5.6.3
ES_IPADDR=192.168.80.64:19200,192.168.80.65:19200,192.168.80.66:19200
JVM_HEAP=31
ES_HTTP_PORT=19200
ES_TRANSPORT_PORT=19300
REDIS_PORT=16379
HA_REDIS=1
VIP_REDIS=192.168.80.70
VIRTUAL_IP=192.168.80.70
ALL_IN_ONE=n
WEB_IP=192.168.80.70
O_N_2=99
IS_JIBEI=True
ALARM_SWITCH=0
NGINX_PORT=18000
NGINX_SSL_PORT=18001
BIG_SCREEN_PORT=18002
CHECK_MODE=0
MULT_MODE=0
EXAM_MODE=0
INFLUXDB_IPADDR=192.168.80.64
GOSITE_PORT=20002
FINEBI_WEB_PORT=37799
FINEBI_WS_PORT=48888
FINEBI_JVM_HEAP=16
ZOO_PORT=2181
KAFKA_PORT=9092
KAFKA_JVM_HEAP=6
MX4J_PORT=9999
KAFKA_REPLICA_FACTOR=1
YC_SOURCE_KAFKA=192.168.83.97:9092
MGR_LISTEN_PORT=17809
DYNAMIC_MIN_PORT=17810
DYNAMIC_MAX_PORT=17909
VIP_OGG=192.168.80.70
YX_DB=ogg
YC_DB=ogg1
MDS_DB=ogg2
YT_DB=ogg3
JDBC_CONNECT_JVM=6G
JDBC_REST_PORT=8833
JDK_V=9
ORACLE_V=21C
HIVE_CONNECT_JVM=6G
OGG_TOPIC_SSPECIAL_NAMES=YX_S_DEV_IR_INSERT,YX_S_DEV_IR_UPDATE
OGG_REPAIR_TOPIC_NAMES=
JDBC_TOPIC_NAMES=
JDBC_REPAIR_TOPIC_NAMES=
WIDE_TABLE_TOPICS=E_MP_DAY_READ,E_MP_ENERGY_CURVE,E_MP_FACTOR_CURVE,E_MP_CUR_CURVE,E_MP_VOL_CURVE,E_MP_READ_CURVE,E_MP_POWER_CURVE,E_MP_CURVE,E_MP_DAY_DEMAND
ES_CONNECT_JVM=6G
ES_REST_PORT=8083
COMPATIBLE=2
ORACLE_HOST=oracle://zshield:zx123456@192.168.83.223:1521/XE
ANTI_STEAL_ES=zshield:Zx123456_shining10@192.168.83.223:19200
[root@ceph-01 infra]# egrep -v '^#|^$' hosts2
[web]
node65 NODE_IPADDR=192.168.80.65 PRIORITY=70 finebi=1
node66 NODE_IPADDR=192.168.80.66 PRIORITY=60
[es2mysql]
[zs_power]
node64 NODE_IPADDR=192.168.80.64 PRECOMPUTE=1 PP1=1 ANTI_STEAL=1
node65 NODE_IPADDR=192.168.80.65 PRECOMPUTE=0 PP1=0
node66 NODE_IPADDR=192.168.80.66 PRECOMPUTE=0 PP1=0
[blind]
node64 NODE_IPADDR=192.168.80.64
[mysql]
node64 NODE_IPADDR=192.168.80.64
node65 NODE_IPADDR=192.168.80.65
[redis]
[zookeeper]
node64 NODE_IPADDR=192.168.80.64 ZOO_MY_ID=1 
node65 NODE_IPADDR=192.168.80.65 ZOO_MY_ID=2
node66 NODE_IPADDR=192.168.80.66 ZOO_MY_ID=3
[kafka]
node64 NODE_IPADDR=192.168.80.64 BROKER_ID=1 
node65 NODE_IPADDR=192.168.80.65 BROKER_ID=2 
node66 NODE_IPADDR=192.168.80.66 BROKER_ID=3 
[ogg]
[mm2]
[jdbc_connect]
[hive_connect]
[kstream]
node64 NODE_IPADDR=192.168.80.64 ZONE=jiangxi
node65 NODE_IPADDR=192.168.80.65 ZONE=jiangxi
node66 NODE_IPADDR=192.168.80.66 ZONE=jiangxi
[zy]
node64 NODE_IPADDR=192.168.80.64 ZY_MERGE=1 ZY_IMPORT=1
node65 NODE_IPADDR=192.168.80.65 ZY_MERGE=1
node66 NODE_IPADDR=192.168.80.66 ZY_MERGE=1
[binary]
node64 NODE_IPADDR=192.168.80.64
node65 NODE_IPADDR=192.168.80.65
node66 NODE_IPADDR=192.168.80.66
[connect]
node64 NODE_IPADDR=192.168.80.64 
node65 NODE_IPADDR=192.168.80.65
node66 NODE_IPADDR=192.168.80.66 
[all_node]
node64 NODE_IPADDR=192.168.80.64
node65 NODE_IPADDR=192.168.80.65
node66 NODE_IPADDR=192.168.80.66
[all_node:vars]
ansible_connection=ssh
[all:vars]
FTP_MIN_PORT=30004
FTP_MAX_PORT=30054
SSH_PORT=10022
ZS_PASSWORD=abc123456
ZSHIELD_HOME=/home/zshield
NTP_IP=192.168.80.64
MASTER_NODE=node64
SLAVE_NODE=node65
MYSQL_PORT=13306
MYSQL_USER=root
MYSQL_PASSWD=Zx123456@shining11
ES_VERSION=5.6.3
ES_IPADDR=192.168.80.64:19200,192.168.80.65:19200,192.168.80.66:19200
JVM_HEAP=31
ES_HTTP_PORT=19200
ES_TRANSPORT_PORT=19300
REDIS_PORT=16379
HA_REDIS=1
VIP_REDIS=192.168.80.70
VIRTUAL_IP=192.168.80.70
ALL_IN_ONE=n
WEB_IP=192.168.80.70
O_N_2=99
IS_JIBEI=True
ALARM_SWITCH=0
NGINX_PORT=18000
NGINX_SSL_PORT=18001
BIG_SCREEN_PORT=18002
CHECK_MODE=0
MULT_MODE=0
EXAM_MODE=0
INFLUXDB_IPADDR=192.168.80.64
GOSITE_PORT=20002
FINEBI_WEB_PORT=37799
FINEBI_WS_PORT=48888
FINEBI_JVM_HEAP=16
ZOO_PORT=2181
KAFKA_PORT=9092
KAFKA_JVM_HEAP=6
MX4J_PORT=9999
KAFKA_REPLICA_FACTOR=1
YC_SOURCE_KAFKA=192.168.83.97:9092
MGR_LISTEN_PORT=17809
DYNAMIC_MIN_PORT=17810
DYNAMIC_MAX_PORT=17909
VIP_OGG=192.168.80.70
YX_DB=ogg
YC_DB=ogg1
MDS_DB=ogg2
YT_DB=ogg3
JDBC_CONNECT_JVM=6G
JDBC_REST_PORT=8833
JDK_V=9
ORACLE_V=21C
HIVE_CONNECT_JVM=6G
HIVE_REST_PORT=8822
JDBC_TOPIC_NAMES=
JDBC_REPAIR_TOPIC_NAMES=
WIDE_TABLE_TOPICS=E_MP_DAY_READ,E_MP_ENERGY_CURVE,E_MP_FACTOR_CURVE,E_MP_CUR_CURVE,E_MP_VOL_CURVE,E_MP_READ_CURVE,E_MP_POWER_CURVE,E_MP_CURVE,E_MP_DAY_DEMAND
ES_CONNECT_JVM=9G
ES_REST_PORT=8084
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值