2016-01-13 47 views
5

是否可以直接從bash運行一個zkCli.sh命令,如ls /get /而不必進入zookeeper shell?我正在使用Zookeeper 3.4.6-1569965版本。如何從bash運行zookeeper的zkCli.sh命令?

例如,這樣的事情:

$ ./zkCli.sh get/

我可以只連接到動物園管理員殼,然後從那裏運行get /,像下面後,要做到這一點:

$ ./zkCli.sh 
Connecting to localhost:2181 
Welcome to ZooKeeper! 

WATCHER:: 

WatchedEvent state:AuthFailed type:None path:null 
JLine support is enabled 

WATCHER:: 

WatchedEvent state:SyncConnected type:None path:null 
[zk: localhost:2181(CONNECTED) 0] get/
[] 
+1

你試過'./zkCli.sh -cmd「獲得/」' –

回答

1

我可以獲取HBase主地址,例如,使用以下語法:

zkCli.sh -server myserver get /hbase/master 如果它不起作用, S以外的意志:

zkCli.sh -server myserver <<EOF 

get /hbase/master 

quit

EOF

3

你可以使用bash沒有直接往裏走。然而,唯一的缺點是你必須確保你的zk命令/語法是正確的。

這會工作:

#! /bin/bash 
zkCli.sh -server localhost:2181 <<EOF 
get /testnode 
quit 
EOF 

但這不會:3.4.7之後

#! /bin/bash 
zkCli.sh -server localhost:2181 <<EOF 
gt /testnode 
quit 
EOF 
+0

是它可以打印'GET'命令的輸出到一個文件。 –