- #!/usr/bin/env python
- #coding=utf-8
- import logging
- logging.basicConfig()
- from kazoo.client import KazooClient
- def diff_zk_child(src_host, dst_host):
- zk_src=KazooClient(hosts=src_host)
- zk_src.start()
- zk_dst=KazooClient(hosts=dst_host)
- zk_dst.start()
- zk_src_child=zk_src.get_children('/app_config/flume_agent/nodes')
- zk_dst_child=zk_dst.get_children('/app_config/flume_agent/nodes')
- #zk_src have but zk_dst not
- add_nodes=list(set(zk_src_child).difference(set(zk_dst_child)))
- delete_nodes=list(set(zk_dst_child).difference(set(zk_src_child)))
- print "add:"
- for node in add_nodes:
- print node
- if not zk_dst.exists('/app_config/flume_agent/nodes/'+str(node)):
- zk_dst.create('/app_config/flume_agent/nodes/'+str(node), b'node rsync')
- print "delete:"
- for node in delete_nodes:
- print node
- if zk_dst.exists('/app_config/flume_agent/nodes/'+str(node)):
- zk_dst.delete('/app_config/flume_agent/nodes/'+str(node))
- zk_src_child=zk_src.get_children('/app_config/flume_agent/nodes')
- zk_dst_child=zk_dst.get_children('/app_config/flume_agent/nodes')
- if __name__ == "__main__":
- diff_zk_child('zk.prod.oa.com:2181', 'zk.mm.oa.com:2181')
这里没用zookeeper自带的python客户端,而是用的kazoo,没有依赖。
|