zk zkCli shell命令

查看zk 注册服务:在zk bin 下执行

sh zkCli.sh 计入客户端shell命令行

查看zk注册服务:ls  /  或者递归查看 ls  -s  /      列出的为注册服务。

查询服务节点的信息:

get  /zookeeper/config

zk 服务管理:

创建节点:

临时节点退出失效的创建:create -e /node_1/node_1_1 "node 1 1",默认不加-e为永久创建

创建顺序节点:

create -s /node_1/node_1_2 "node 2 2"

get命令:

 get /test

删除命令:
 delete /test
set修改:
 set /test "ricky"
退出客户端
quit

鉴权Acll对单用户:addauth  digest user:pwd

设置Acl 给digtest服务注意这个digtest服务我create  /digtest  "relativestring"  创建的

修改Acl: setAcl  节点名   auth:用户名:权限

查询Acl: getAcl /noacl

语法:

addauth digest <user>:<password>
setAcl <path> auth:<id>:<acl>Acl对ip/host可使用英文逗号拼接多个ip设置解决:setAcl /node ip:192.168.1.1:cdrwa,ip:192.168.1.2:cdrwa,ip:192.168.1.3:cdrwa

[zk: localhost:2181(CONNECTED) 8] addauth digest tom2:tom2
[zk: localhost:2181(CONNECTED) 9] setAcl /digtest auth:tom2:cra
[zk: localhost:2181(CONNECTED) 10] getAcl /digtest tom2
‘digest,‘tom2:2iJM00A7+qkeKdEXt8Bhgq+IACw=

对zookeeper设置ACL属性

我们以zkCli为例,来说明zookeeper对ACL的设置。

使用zkCli时,ACL的格式由<schema>:<id>:<acl>三段组成。

  • schema:可以取下列值:world, auth, digest, host/ip
  • id: 标识身份,值依赖于schema做解析。
  • acl:就是权限:cdwra分别表示create, delete,write,read, admin

注意:zookeeper对权限的控制是znode级别的,不具有继承性,即子节点不继承父节点的权限。这种设计在使用上还是有缺陷的,因为很多场景下,我们还是会把相关资源组织一下,放在同一个路径下面,这样就会有对一个路径统一授权的需求。

  1. schema world

zk help:

[zk: localhost:2181(CONNECTED) 25] zookeeper -help
ZooKeeper -server host:port cmd args
addauth scheme auth
close
config [-c] [-w] [-s]
connect host:port
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
delete [-v version] path
deleteall path
delquota [-n|-b] path
get [-s] [-w] path
getAcl [-s] path
history
listquota path
ls [-s] [-w] [-R] path
ls2 path [watch]
printwatches on|off
quit
reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
redo cmdno
removewatches path [-c|-d|-a] [-l]
rmr path
set [-s] [-v version] path data
setAcl [-s] [-v version] [-R] path acl
setquota -n|-b val path
stat [-w] path
sync path

更多参考官网:http://zookeeper.apache.org/doc/current/zookeeperStarted.html

原文地址:https://www.cnblogs.com/SunshineKimi/p/12152367.html

时间: 2024-11-01 20:35:53

zk zkCli shell命令的相关文章

FS Shell命令手册

1.       FS Shell 1.1     简介 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme://authority/path.对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file.其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme.一个HDFS文件或目录比如/parent/chi

批量执行shell命令

虽然目前都实现了自动化如puppet saltstack在环境中的应用,但工作中不可避免的要自己写一些简单的批量执行shell命令的脚本. python paramiko模块是目前使用得较为顺手的模块,执行命令时基本无需要转换,直接将shell命令扔进去执行就OK 简单示例,10个线程同时执行ssh或scp动作,未设置timeout时间,如执行长时间无反应会导致脚本执行问题: #!/usr/bin/python # _*_ coding: utf-8 _*_ import paramiko im

Linux下的C程序,使用函数execlp运行Shell命令

通过C程序运行Shell命令,使用execlp函数 execlp的几个参数分别为:文件名,各个参数,(char*)0 其中"各个参数"部分中的第一个参数就是文件名(相当于文件名要输入两遍) 最后一个参数写(char*)0就可以了 文件b.cpp代码: 循环地输入命令→执行命令,直到按下Ctrl+C结束 #include <stdio.h> #include <string.h> #include <unistd.h> #include <std

使用sh库执行shell命令

python中执行shell命令 之前执行shell命令多是通过os.system(shell命令)的方式来执行,比较麻烦. 了解到sh是一个比subprocess好的库,能够执行shell命令 1.查看ip: [[email protected] myblog]# ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 172.31.253.193 netmask 255.255.240.0 broadcas

adb shell 命令详解

adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序.借助这个工具,我们可以管理设备或手机模拟器的状态.还可以进行以下的操作:  1.快速更新设备或手机模拟器中的代码,如应用或Android 系统升级: 2.在设备上运行shell命令: 3.管理设备或手机模拟器上的预定端口: 4.在设备或手机模拟器上复制或粘贴文件

Python之路35-subprocess模块和Python3中常用执行shell命令方法

import subprocess #执行命令,返回命令执行状态 , 0 or 非0 retcode = subprocess.call(["free","-m"])    #返回值可判断执行是否正确,命令执行结果直接返回到屏幕 #执行命令,如果命令结果为0,就正常返回,否则抛异常 result = subprocess.check_call(["ls","-l"]) #执行命令,并返回结果,注意是返回结果,不是打印,下例结果

vim中执行shell命令

1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls -l 特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim 2):r !command 将shell命令command的结果插入到当前行的下一行 例如 :r !date,读取时间并插入到当前行的下一行.

awk中可以使用system来执行复杂的shell命令

在awk中可以直接执行shell命令. [plain] view plain copy [email protected]:~$ touch a [email protected]:~$ touch b [email protected]:~$ cat a.txt a b [email protected]:~$ awk '{cmd="rm "$0;system(cmd)}' a.txt [email protected]:~$ ls a.txt      dd            

java程序执行,调用shell命令和shell脚本

  坑呀!记得在start()之后, waitFor()之前把缓冲区读出来打log,否则是阻塞缓冲区,没有输出的 package com.jikexueyuancrm.util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import