1.脚本命令:
vim xcallzk.sh
其中hosts文件和zkServer.sh的位置需要和你本机的安装位置一致
#!/bin/bash
# 获取控制台指令
cmd=$*
# 判断指令是否为空
if [ ! -n "$cmd" ]
then
echo "command can not be null!"
exit
fi
# 获取当前登录用户
user=`whoami`
# 在从机执行命令,需要根据具体集群情况配置
hosts=(master slave1 slave2)
case $1 in
"start"){
for host in ${hosts[@]}
do
echo "======current host is $host======"
ssh $user@$host "sh /home/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start"
done
};;
"stop"){
for host in ${hosts[@]}
do
echo "======current host is $host======"
ssh $user@$host "sh /home/zookeeper/zookeeper-3.4.10/bin/zkServer.sh stop"
done
};;
esac
echo "execute successfully !"
2.运行环境
修改文件权限:
chmod 777 xcallzk.sh
运行命令发现显示启动成功,但是使用jps没有进程,但是直接不使用ssh启动是可以的,查了下资料。原来是ssh远程执行的需要配置一个环境变量:
vim ~/.bashrc
将etc/profile下面的自己配置的环境变量拷贝过来,主要是java环境
重新运行脚本命令,再使用jps查询,启动成功:
# 启动
./xcallzk.sh start
# 关闭
./xcallzk.sh stop