(33)zookeeper集群自动启动脚本

在一台机器上控制另一台机器启动zookeeper:

ssh mini2 /root/apps/zookeeper-3.4.5/bin/zkServer.sh start

运行该命令后,在mini2上并没有启动zookeeper

原因: ssh命令开启了一个新的会话(新的bash),在该会话中没有JAVA_HOME变量

解决方案:

ssh mini2 "source /etc/profile;/root/apps/zookeeper/bin/zkServer.sh start"

source /etc/profile 命令表示把定义在/etc/profile文件中的变量添加到当前bash中,这样新的会话中就有了JAVA_HOME变量

export变量作用域:若定义变量时在前面加上export,表示该变量在当前shell进程和子进程中都有;若不加export,则表示该变量只对自己所在的shell进程生效。

source:把定义在脚本中的变量添加到当前进程(bash)中。

zookeeper集群的自动启动脚本:

#!/bin/sh

echo "start zkServer..."

for i in  1 2 3

do

ssh mini$i "source /etc/profile;/root/apps/zookeeper-3.4.5/bin/zkServer.sh start"

done

原文地址:https://www.cnblogs.com/paradis/p/11380985.html